diff --git a/apps/dapp/.env.local.example b/apps/dapp/.env.local.example index 3c4c4f278..d42dbf86b 100644 --- a/apps/dapp/.env.local.example +++ b/apps/dapp/.env.local.example @@ -1 +1,2 @@ -VITE_ENV=local \ No newline at end of file +VITE_ENV=local +VITE_BALANCER_SUBGRAPH_API_KEY=123 # From https://thegraph.com/studio \ No newline at end of file diff --git a/apps/dapp/package.json b/apps/dapp/package.json index c416e5d83..926e318bd 100644 --- a/apps/dapp/package.json +++ b/apps/dapp/package.json @@ -37,6 +37,7 @@ "ethereumjs-util": "^7.1.5", "ethers": "5.7.0", "events": "^3.3.0", + "exponential-backoff": "^3.1.1", "lottie-web": "^5.9.4", "millify": "^4.0.0", "polished": "^4.1.3", diff --git a/apps/dapp/src/components/Pages/Core/DappPages/Borrow/TLC/Repay.tsx b/apps/dapp/src/components/Pages/Core/DappPages/Borrow/TLC/Repay.tsx index 7c281c684..01a546cd7 100644 --- a/apps/dapp/src/components/Pages/Core/DappPages/Borrow/TLC/Repay.tsx +++ b/apps/dapp/src/components/Pages/Core/DappPages/Borrow/TLC/Repay.tsx @@ -100,19 +100,25 @@ export const Repay: React.FC = ({ setState({ ...state, repayValue: accountPosition - ? formatToken(accountPosition.currentDebt, state.outputToken) + ? accountPosition.currentDebt.gt(state.outputTokenBalance) + ? formatToken(state.outputTokenBalance, state.outputToken) + : formatToken(accountPosition.currentDebt, state.outputToken) : '0', }); }} min={0} - // Max is total debt hint={`Max: ${formatToken( - accountPosition ? accountPosition.currentDebt : ZERO, + accountPosition + ? accountPosition.currentDebt.gt(state.outputTokenBalance) + ? state.outputTokenBalance + : accountPosition.currentDebt + : ZERO, state.outputToken )}`} width="100%" /> - {fromAtto(state.outputTokenBalance) < Number(state.repayValue) && ( + {fromAtto(state.outputTokenBalance).toFixed(2) < + Number(state.repayValue).toFixed(2) && (

i

@@ -164,7 +170,8 @@ export const Repay: React.FC = ({ // Disable if repay amount is lte zero, or gt wallet balance disabled={ Number(state.repayValue) <= 0 || - fromAtto(state.outputTokenBalance) < Number(state.repayValue) + fromAtto(state.outputTokenBalance).toFixed(2) < + Number(state.repayValue).toFixed(2) } style={{ width: 'auto' }} > diff --git a/apps/dapp/src/components/Pages/Core/DappPages/Borrow/index.tsx b/apps/dapp/src/components/Pages/Core/DappPages/Borrow/index.tsx index 7604c7acc..c726826aa 100644 --- a/apps/dapp/src/components/Pages/Core/DappPages/Borrow/index.tsx +++ b/apps/dapp/src/components/Pages/Core/DappPages/Borrow/index.tsx @@ -102,7 +102,7 @@ export const BorrowPage = () => { templePrice: data.tokens.filter((t: any) => t.symbol == 'TEMPLE')[0] .price, daiPrice: data.tokens.filter((t: any) => t.symbol == 'DAI')[0].price, - tpi: data.treasuryReservesVaults[0].treasuryPriceIndex, + tpi: Number(data.treasuryReservesVaults[0].treasuryPriceIndex), }); }, []); @@ -718,7 +718,9 @@ export const BorrowPage = () => { Current Borrow APY - {showLoading ? '...' : prices.tpi} + + {showLoading ? '...' : prices.tpi.toFixed(2)} + Current TPI diff --git a/apps/dapp/src/constants/env/local.tsx b/apps/dapp/src/constants/env/local.tsx index 977245bd5..6f3ba6217 100644 --- a/apps/dapp/src/constants/env/local.tsx +++ b/apps/dapp/src/constants/env/local.tsx @@ -1,7 +1,8 @@ import { ADDRESS_ZERO } from 'utils/bigNumber'; import { Environment } from './types'; -const ENV = import.meta.env; +const BALANCER_SUBGRAPH_API_KEY = import.meta.env + .VITE_BALANCER_SUBGRAPH_API_KEY; const env: Environment = { alchemyId: '-nNWThz_YpX1cGffGiz-lbSMu7dmp4GK', @@ -37,6 +38,7 @@ const env: Environment = { vaultEarlyExit: '', ramos: '', ramosPoolHelper: '', + templeDaiBalancerPool: '', balancerHelpers: '', strategies: { dsrBaseStrategy: '', @@ -51,26 +53,18 @@ const env: Environment = { }, infuraId: '4cd22916292d4fb6be156454978c326b', subgraph: { - // TODO: These need updated to the templedao organization subgraphs once they are deployed templeCore: 'http://localhost:8000/subgraphs/name/templedao-core', protocolMetrics: 'https://subgraph.satsuma-prod.com/a912521dd162/templedao/temple-metrics/api', protocolMetricsArbitrum: 'https://api.studio.thegraph.com/query/76011/temple-metrics-arbitrum/version/latest', - // TODO: This is not used anymore and should be removed - balancerV2: - 'https://api.thegraph.com/subgraphs/name/templedao/templedao-balancer-v2', - // TODO: Will be deprecated + balancerV2: `https://gateway.thegraph.com/api/${BALANCER_SUBGRAPH_API_KEY}/subgraphs/id/C4ayEZP2yTXRAB8vSaTrgN4m9anTe9Mdm2ViyiAuV9TV`, ramos: - 'https://api.studio.thegraph.com/query/76011/temple-ramos/version/latest', - // templeV2: 'https://api.studio.thegraph.com/query/520/v2-sepolia/version/latest', + 'https://subgraph.satsuma-prod.com/a912521dd162/templedao/temple-ramos/api', templeV2: 'https://subgraph.satsuma-prod.com/a912521dd162/templedao/temple-v2-mainnet/api', templeV2Balances: 'https://subgraph.satsuma-prod.com/a912521dd162/templedao/temple-v2-balances/api', - - // Original Balancer Subgraph - // balancerV2: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-goerli-v2', }, intervals: { ascendData: 30_000, diff --git a/apps/dapp/src/constants/env/preview.tsx b/apps/dapp/src/constants/env/preview.tsx index 0579f1c05..1258edd1a 100644 --- a/apps/dapp/src/constants/env/preview.tsx +++ b/apps/dapp/src/constants/env/preview.tsx @@ -1,6 +1,9 @@ import { ADDRESS_ZERO } from 'utils/bigNumber'; import { Environment } from './types'; +const BALANCER_SUBGRAPH_API_KEY = import.meta.env + .VITE_BALANCER_SUBGRAPH_API_KEY; + const env: Environment = { alchemyId: 'AorwfDdHDsEjIX4HPwS70zkVjWqjv5vZ', rpcUrl: 'https://rpc.ankr.com/eth', @@ -35,6 +38,7 @@ const env: Environment = { vaultEarlyExit: '', ramos: '0x82ce000a51E8474378f7b555bcC4de5992052452', ramosPoolHelper: '0xbfC24c9d7D57C413618CE11cea1e313a2E8D9e1d', + templeDaiBalancerPool: '', balancerHelpers: '0xdAE7e32ADc5d490a43cCba1f0c736033F2b4eFca', strategies: { dsrBaseStrategy: '0x472C7cDb6E730ff499E118dE6260c6b44c61d7bf', @@ -48,25 +52,19 @@ const env: Environment = { templeCircuitBreaker: '0x8f783c4A3d90712A794d5660b632AC67611852aF', }, subgraph: { - // TODO: These need updated to the templedao organization subgraphs once they are deployed templeCore: 'https://api.studio.thegraph.com/query/76011/temple-core/version/latest', protocolMetrics: 'https://subgraph.satsuma-prod.com/a912521dd162/templedao/temple-metrics/api', protocolMetricsArbitrum: 'https://api.studio.thegraph.com/query/76011/temple-metrics-arbitrum/version/latest', - // TODO: This is not used anymore and should be removed - balancerV2: - 'https://api.thegraph.com/subgraphs/name/templedao/templedao-balancer-v2', - // TODO: Will be deprecated + balancerV2: `https://gateway.thegraph.com/api/${BALANCER_SUBGRAPH_API_KEY}/subgraphs/id/C4ayEZP2yTXRAB8vSaTrgN4m9anTe9Mdm2ViyiAuV9TV`, ramos: - 'https://api.studio.thegraph.com/query/76011/temple-ramos/version/latest', + 'https://subgraph.satsuma-prod.com/a912521dd162/templedao/temple-ramos/api', templeV2: 'https://subgraph.satsuma-prod.com/a912521dd162/templedao/temple-v2-mainnet/api', templeV2Balances: 'https://subgraph.satsuma-prod.com/a912521dd162/templedao/temple-v2-balances/api', - // Original Balancer Subgraph - // balancerV2: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-goerli-v2', }, gas: { swapFraxForTemple: 300000, diff --git a/apps/dapp/src/constants/env/production.tsx b/apps/dapp/src/constants/env/production.tsx index f4b813c47..d1b1d42cb 100644 --- a/apps/dapp/src/constants/env/production.tsx +++ b/apps/dapp/src/constants/env/production.tsx @@ -1,6 +1,9 @@ import { ADDRESS_ZERO } from 'utils/bigNumber'; import { Environment } from './types'; +const BALANCER_SUBGRAPH_API_KEY = import.meta.env + .VITE_BALANCER_SUBGRAPH_API_KEY; + const env: Environment = { alchemyId: 'XiIZxWykHU5AOFBwxKgxseXWN984Mp8F', rpcUrl: 'https://rpc.ankr.com/eth', @@ -174,6 +177,8 @@ const env: Environment = { vaultEarlyExit: '0x24719d3AF60e1B622a29317d29E5Ce283617DeEC', ramos: '0xDdF499e726Bfde29Ce035F6B355e55757F08B5EF', ramosPoolHelper: '0xe32089bf9724aF09C026BeC36a7d8a81500cd58A', + templeDaiBalancerPool: + '0x8bd4a1e74a27182d23b98c10fd21d4fbb0ed4ba00002000000000000000004ed', balancerHelpers: '0x5aDDCCa35b7A0D07C74063c48700C8590E87864E', strategies: { dsrBaseStrategy: '0x8b9e20D9970Af54fbaFe64049174e24d6DE0C412', @@ -253,25 +258,19 @@ const env: Environment = { network: 1, etherscan: 'https://etherscan.io', subgraph: { - // TODO: These need updated to the templedao organization subgraphs once they are deployed templeCore: 'https://api.studio.thegraph.com/query/76011/temple-core/version/latest', protocolMetrics: 'https://subgraph.satsuma-prod.com/a912521dd162/templedao/temple-metrics/api', protocolMetricsArbitrum: 'https://api.studio.thegraph.com/query/76011/temple-metrics-arbitrum/version/latest', - // TODO: This is not used anymore and should be removed - balancerV2: - 'https://api.thegraph.com/subgraphs/name/templedao/templedao-balancer-v2', - // TODO: Will be deprecated + balancerV2: `https://gateway.thegraph.com/api/${BALANCER_SUBGRAPH_API_KEY}/subgraphs/id/C4ayEZP2yTXRAB8vSaTrgN4m9anTe9Mdm2ViyiAuV9TV`, ramos: - 'https://api.studio.thegraph.com/query/76011/temple-ramos/version/latest', + 'https://subgraph.satsuma-prod.com/a912521dd162/templedao/temple-ramos/api', templeV2: 'https://subgraph.satsuma-prod.com/a912521dd162/templedao/temple-v2-mainnet/api', templeV2Balances: 'https://subgraph.satsuma-prod.com/a912521dd162/templedao/temple-v2-balances/api', - // Original Balancer Subgraph - // balancerV2: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-v2-beta', }, featureFlags: { enableAscend: false, diff --git a/apps/dapp/src/constants/env/types.ts b/apps/dapp/src/constants/env/types.ts index 8f1d3facc..ddde881ff 100644 --- a/apps/dapp/src/constants/env/types.ts +++ b/apps/dapp/src/constants/env/types.ts @@ -54,6 +54,7 @@ interface Contracts { fohmoGnosisStrategy: string; }; ramosPoolHelper: string; + templeDaiBalancerPool: string; balancerHelpers: string; daiCircuitBreaker: string; templeCircuitBreaker: string; diff --git a/apps/dapp/src/providers/SwapProvider.tsx b/apps/dapp/src/providers/SwapProvider.tsx index 1a73c8bb2..24352b2f1 100644 --- a/apps/dapp/src/providers/SwapProvider.tsx +++ b/apps/dapp/src/providers/SwapProvider.tsx @@ -21,14 +21,18 @@ import { BalancerSDK, Network, SwapType, SwapInfo } from '@balancer-labs/sdk'; import VaultABI from 'data/abis/balancerVault.json'; import { formatToken } from 'utils/formatter'; import { ADDRESS_ZERO } from 'utils/bigNumber'; +import { backOff } from 'exponential-backoff'; +import { MAINNET_CHAIN } from 'utils/envChainMapping'; // Initialize balancer SOR const maxPools = 4; const balancer = new BalancerSDK({ network: Network.MAINNET, rpcUrl: env.rpcUrl, + customSubgraphUrl: env.subgraph.balancerV2, + enableLogging: true, }); -const sor = balancer.sor; +const { swaps: balancerSwaps } = balancer; // Swaps module is abstracting SOR const INITIAL_STATE: SwapService = { buy: asyncNoop, @@ -36,7 +40,7 @@ const INITIAL_STATE: SwapService = { getSellQuote: asyncNoop, getBuyQuote: asyncNoop, error: null, - sor: balancer.sor, + balancerSwaps, }; // Build batchSwap transaction details @@ -109,6 +113,8 @@ const buildSingleTransaction = ( const SwapContext = createContext(INITIAL_STATE); +class FetchPoolsError extends Error {} + // eslint-disable-next-line @typescript-eslint/ban-types export const SwapProvider = (props: PropsWithChildren<{}>) => { const [error, setError] = useState(null); @@ -117,11 +123,19 @@ export const SwapProvider = (props: PropsWithChildren<{}>) => { useEffect(() => { const onMount = async () => { - try { - await sor.fetchPools(); - } catch (e) { - console.log('failed to fetch sor pools'); - } + return backOff(async () => { + const success = await balancerSwaps.fetchPools({ + chainId: MAINNET_CHAIN.id, + where: { + id: { + eq: env.contracts.templeDaiBalancerPool, + }, + }, + }); + if (!success) { + throw new FetchPoolsError(); + } + }); }; onMount(); }, []); @@ -309,14 +323,13 @@ export const SwapProvider = (props: PropsWithChildren<{}>) => { const gasPrice = signer ? await signer?.getGasPrice() : BigNumber.from(0); // Find swapInfo for best trade given pair and amount - const swapInfo: SwapInfo = await sor.getSwaps( - tokenInInfo.address, - tokenOutInfo.address, - 0, - amountIn, - { gasPrice, maxPools }, - false - ); + const swapInfo = await balancerSwaps.findRouteGivenIn({ + tokenIn: tokenInInfo.address, + tokenOut: tokenOutInfo.address, + amount: amountIn, + gasPrice, + maxPools, + }); console.debug('swapInfo', swapInfo); return swapInfo; }; @@ -331,14 +344,13 @@ export const SwapProvider = (props: PropsWithChildren<{}>) => { const gasPrice = signer ? await signer?.getGasPrice() : BigNumber.from(0); // Find swapInfo for best trade given pair and amount - const swapInfo: SwapInfo = await sor.getSwaps( - tokenInInfo.address, - tokenOutInfo.address, - 0, - amountToSell, - { gasPrice, maxPools }, - false - ); + const swapInfo = await balancerSwaps.findRouteGivenIn({ + tokenIn: tokenInInfo.address, + tokenOut: tokenOutInfo.address, + amount: amountToSell, + gasPrice, + maxPools, + }); return swapInfo; }; @@ -350,7 +362,7 @@ export const SwapProvider = (props: PropsWithChildren<{}>) => { getBuyQuote, getSellQuote, error, - sor, + balancerSwaps: balancerSwaps, }} > {props.children} diff --git a/apps/dapp/src/providers/types.ts b/apps/dapp/src/providers/types.ts index 1299bdc5d..debe80efd 100644 --- a/apps/dapp/src/providers/types.ts +++ b/apps/dapp/src/providers/types.ts @@ -1,14 +1,8 @@ -import { Network } from '@ethersproject/providers'; -import { - BigNumber, - ContractReceipt, - Signer, - ContractTransaction, -} from 'ethers'; +import { BigNumber, ContractReceipt, Signer } from 'ethers'; import { Nullable } from 'types/util'; import { TransactionReceipt } from '@ethersproject/abstract-provider'; import { TICKER_SYMBOL } from 'enums/ticker-symbol'; -import { Sor, SwapInfo } from '@balancer-labs/sdk'; +import { Swaps, SwapInfo } from '@balancer-labs/sdk'; export enum RitualKind { OFFERING_STAKING = 'OFFERING_STAKING', @@ -115,7 +109,7 @@ export interface SwapService { error: Error | null; - sor: Sor; + balancerSwaps: Swaps; } export interface WalletState { diff --git a/apps/dapp/yarn.lock b/apps/dapp/yarn.lock index a374f09d8..e124f7818 100644 --- a/apps/dapp/yarn.lock +++ b/apps/dapp/yarn.lock @@ -10042,6 +10042,11 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + express@^4.14.0: version "4.19.2" resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" diff --git a/protocol/.gas-snapshot b/protocol/.gas-snapshot new file mode 100644 index 000000000..850b01247 --- /dev/null +++ b/protocol/.gas-snapshot @@ -0,0 +1,511 @@ +AbstractStrategyTestAccess:test_access_debtCeilingUpdated() (gas: 15880) +AbstractStrategyTestAccess:test_access_recoverToken() (gas: 22561) +AbstractStrategyTestAccess:test_access_setManualAssetBalanceDeltas() (gas: 18573) +AbstractStrategyTestAccess:test_access_setTokenAllowance() (gas: 22606) +AbstractStrategyTestAccess:test_access_setTreasuryReservesVault() (gas: 20327) +AbstractStrategyTestAdmin:test_automatedShutdown() (gas: 608832) +AbstractStrategyTestAdmin:test_debtCeilingUpdated() (gas: 38882) +AbstractStrategyTestAdmin:test_initalization() (gas: 53299) +AbstractStrategyTestAdmin:test_recoverToken() (gas: 285225) +AbstractStrategyTestAdmin:test_setTokenAllowance() (gas: 53237) +AbstractStrategyTestAdmin:test_setTreasuryReservesVault() (gas: 4598283) +AbstractStrategyTestBalances:test_availableToBorrow() (gas: 1019711) +AbstractStrategyTestBalances:test_availableToBorrow_overflow() (gas: 1222301) +AbstractStrategyTestBalances:test_checkpointAssetBalances() (gas: 820708) +AbstractStrategyTestBalances:test_latestAssetBalances() (gas: 755490) +AbstractStrategyTestBalances:test_setManualAssetBalanceDeltas() (gas: 646520) +AbstractStrategyTestMultiAsset:test_multiAsset() (gas: 953758) +CompoundedInterestTest:test_compound_fivePct_dayOne() (gas: 5178) +CompoundedInterestTest:test_compound_fivePct_dayThirty() (gas: 5395) +CompoundedInterestTest:test_compound_fivePct_yearOne() (gas: 5570) +CompoundedInterestTest:test_compound_onePct_dayOne() (gas: 5158) +CompoundedInterestTest:test_compound_onePct_dayThirty() (gas: 5193) +CompoundedInterestTest:test_compound_onePct_yearOne() (gas: 5526) +CompoundedInterestTest:test_compound_yenPct_dayOne() (gas: 5213) +CompoundedInterestTest:test_compound_yenPct_dayThirty() (gas: 5378) +CompoundedInterestTest:test_compound_yenPct_yearOne() (gas: 5567) +CompoundedInterestTest:test_compound_zeroDays() (gas: 3472) +CompoundedInterestTest:test_compound_zeroPct_dayOne() (gas: 3371) +CompoundedInterestTest:test_compound_zeroPct_dayThirty() (gas: 3417) +CompoundedInterestTest:test_compound_zeroPct_yearOne() (gas: 3371) +CompoundedInterestTest:test_compound_zeroPrincipal() (gas: 5158) +CompoundedInterestTest:test_compute_maxDays_expectInputTooBig() (gas: 5973) +CompoundedInterestTest:test_compute_maxPrincipal_expectOverflow() (gas: 6456) +CompoundedInterestTest:test_compute_maxRate_expectInputTooBig() (gas: 5953) +DsrBaseStrategyTestAccess:test_access_automatedShutdown() (gas: 18349) +DsrBaseStrategyTestAccess:test_access_borrowAndDeposit() (gas: 18213) +DsrBaseStrategyTestAccess:test_access_trvDeposit() (gas: 13611) +DsrBaseStrategyTestAccess:test_access_trvWithdraw() (gas: 13611) +DsrBaseStrategyTestAccess:test_access_withdrawAndRepay() (gas: 18223) +DsrBaseStrategyTestAccess:test_access_withdrawAndRepayAll() (gas: 18096) +DsrBaseStrategyTestAdmin:test_dsr_interest_equivalence() (gas: 13223) +DsrBaseStrategyTestAdmin:test_initalization() (gas: 38613) +DsrBaseStrategyTestAdmin:test_setTreasuryReservesVault() (gas: 4404653) +DsrBaseStrategyTestBorrowAndRepay:test_automatedShutdown() (gas: 504705) +DsrBaseStrategyTestBorrowAndRepay:test_borrowAndDeposit() (gas: 352403) +DsrBaseStrategyTestBorrowAndRepay:test_checkpointBalances() (gas: 437767) +DsrBaseStrategyTestBorrowAndRepay:test_dsrEarning() (gas: 437937) +DsrBaseStrategyTestBorrowAndRepay:test_withdrawAndRepay() (gas: 415553) +DsrBaseStrategyTestBorrowAndRepay:test_withdrawAndRepayAll() (gas: 423246) +DsrBaseStrategyTestTrvWithdraw:test_trvDeposit() (gas: 428359) +DsrBaseStrategyTestTrvWithdraw:test_trvWithdraw_capped() (gas: 369951) +DsrBaseStrategyTestTrvWithdraw:test_trvWithdraw_complex() (gas: 819596) +DsrBaseStrategyTestTrvWithdraw:test_trvWithdraw_inIsoloation() (gas: 387844) +DsrBaseStrategyTestnetTestAccess:test_access_automatedShutdown() (gas: 18349) +DsrBaseStrategyTestnetTestAccess:test_access_borrowAndDeposit() (gas: 18213) +DsrBaseStrategyTestnetTestAccess:test_access_trvDeposit() (gas: 13611) +DsrBaseStrategyTestnetTestAccess:test_access_trvWithdraw() (gas: 13608) +DsrBaseStrategyTestnetTestAccess:test_access_withdrawAndRepay() (gas: 18201) +DsrBaseStrategyTestnetTestAccess:test_access_withdrawAndRepayAll() (gas: 18074) +DsrBaseStrategyTestnetTestAdmin:test_dsr_interest_equivalence() (gas: 13223) +DsrBaseStrategyTestnetTestAdmin:test_initalization() (gas: 33977) +DsrBaseStrategyTestnetTestAdmin:test_setTreasuryReservesVault() (gas: 4401520) +DsrBaseStrategyTestnetTestBorrowAndRepay:test_automatedShutdown() (gas: 290987) +DsrBaseStrategyTestnetTestBorrowAndRepay:test_borrowAndDeposit() (gas: 225663) +DsrBaseStrategyTestnetTestBorrowAndRepay:test_checkpointBalances() (gas: 301250) +DsrBaseStrategyTestnetTestBorrowAndRepay:test_dsrEarning() (gas: 313218) +DsrBaseStrategyTestnetTestBorrowAndRepay:test_withdrawAndRepay() (gas: 251717) +DsrBaseStrategyTestnetTestBorrowAndRepay:test_withdrawAndRepayAll() (gas: 197863) +DsrBaseStrategyTestnetTestTrvWithdraw:test_trvDeposit() (gas: 225454) +DsrBaseStrategyTestnetTestTrvWithdraw:test_trvWithdraw_capped() (gas: 202291) +DsrBaseStrategyTestnetTestTrvWithdraw:test_trvWithdraw_complex() (gas: 655083) +DsrBaseStrategyTestnetTestTrvWithdraw:test_trvWithdraw_inIsoloation() (gas: 221628) +GnosisStrategyTestAccess:test_access_automatedShutdown() (gas: 18371) +GnosisStrategyTestAccess:test_access_borrow() (gas: 20332) +GnosisStrategyTestAccess:test_access_borrowMax() (gas: 20332) +GnosisStrategyTestAccess:test_access_recoverToGnosis() (gas: 20385) +GnosisStrategyTestAccess:test_access_repay() (gas: 20385) +GnosisStrategyTestAccess:test_access_repayAll() (gas: 20281) +GnosisStrategyTestAccess:test_access_setAssets() (gas: 18475) +GnosisStrategyTestAdmin:test_automatedShutdown() (gas: 15768) +GnosisStrategyTestAdmin:test_initalization() (gas: 40238) +GnosisStrategyTestAdmin:test_recoverToGnosis() (gas: 285036) +GnosisStrategyTestBalances:test_checkpointAssetBalances() (gas: 583797) +GnosisStrategyTestBalances:test_latestAssetBalances() (gas: 1450610) +GnosisStrategyTestBalances:test_latestAssetBalances_default() (gas: 739275) +GnosisStrategyTestBalances:test_setAssets() (gas: 104536) +GnosisStrategyTestBorrowAndRepay:test_borrow() (gas: 282530) +GnosisStrategyTestBorrowAndRepay:test_borrowMax() (gas: 292665) +GnosisStrategyTestBorrowAndRepay:test_borrowMax_failCircuitBreaker() (gas: 106498) +GnosisStrategyTestBorrowAndRepay:test_borrow_failCircuitBreaker() (gas: 74545) +GnosisStrategyTestBorrowAndRepay:test_repay() (gas: 570832) +GnosisStrategyTestBorrowAndRepay:test_repayAll() (gas: 297244) +LinearWithKinkInterestRateModelTestModifiers:test_accessAliceSetRateParams() (gas: 28063) +LinearWithKinkInterestRateModelTestModifiers:test_accessExecutorSetRateParams() (gas: 31289) +LinearWithKinkInterestRateModelTestModifiers:test_accessRescuerSetRateParams() (gas: 61835) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateFlat_AfterHundredUR() (gas: 12970) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateFlat_AfterKink() (gas: 15155) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateFlat_AtKink() (gas: 14888) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateFlat_BeforeKink() (gas: 14973) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateFlat_HalfUR() (gas: 14961) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateFlat_HundredUR() (gas: 12991) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateFlat_OneUR() (gas: 12861) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateFlat_ZeroUR() (gas: 12839) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateKink900_HundredUR() (gas: 35310) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateKink_AfterHundredUR() (gas: 13073) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateKink_AfterKink() (gas: 13078) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateKink_AtKink() (gas: 12831) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateKink_BeforeHundredUR() (gas: 10853) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateKink_BeforeKink() (gas: 12876) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateKink_HalfUR() (gas: 12860) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateKink_HalfWayUpKink() (gas: 13299) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateKink_HundredUR() (gas: 13055) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateKink_oneUR() (gas: 10661) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterestRateKink_zeroUR() (gas: 12828) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterest_ExceedPrecission() (gas: 12977) +LinearWithKinkInterestRateModelTestModifiers:test_calculateInterest_MaxUR() (gas: 13029) +LinearWithKinkInterestRateModelTestModifiers:test_expectInvalidParams_Max() (gas: 15950) +LinearWithKinkInterestRateModelTestModifiers:test_expectInvalidParams_Zero() (gas: 15940) +LinearWithKinkInterestRateModelTestModifiers:test_expectInvalidParams_failWrongOrder() (gas: 22262) +MultiOtcOfferAccessTest:test_access_addOtcMarket() (gas: 22183) +MultiOtcOfferAccessTest:test_access_fuzz_addOtcMarket(address) (runs: 1000, μ: 26961, ~: 26961) +MultiOtcOfferAccessTest:test_access_fuzz_removeOtcMarket(address) (runs: 1000, μ: 24469, ~: 24469) +MultiOtcOfferAccessTest:test_access_fuzz_setMarketFundsOwner(address) (runs: 1000, μ: 26658, ~: 26658) +MultiOtcOfferAccessTest:test_access_fuzz_setOfferPrice(address) (runs: 1000, μ: 24545, ~: 24545) +MultiOtcOfferAccessTest:test_access_fuzz_setOfferPriceRange(address) (runs: 1000, μ: 24680, ~: 24680) +MultiOtcOfferAccessTest:test_access_removeOtcMarket() (gas: 19713) +MultiOtcOfferAccessTest:test_access_setMarketFundsOwner() (gas: 21890) +MultiOtcOfferAccessTest:test_access_setOfferPrice() (gas: 19767) +MultiOtcOfferAccessTest:test_access_setOfferPriceRange() (gas: 19924) +MultiOtcOfferAccessTest:test_access_success_addOtcMarket() (gas: 278808) +MultiOtcOfferAccessTest:test_access_success_removeOtcMarket() (gas: 223969) +MultiOtcOfferAccessTest:test_access_success_setMarketFundsOwner() (gas: 284769) +MultiOtcOfferAccessTest:test_access_success_setOfferPrice() (gas: 282710) +MultiOtcOfferAccessTest:test_access_success_setOfferPriceRange() (gas: 282875) +MultiOtcOfferAccessTest:test_initialization() (gas: 14903) +MultiOtcOfferTest:test_addOtcMarket() (gas: 377455) +MultiOtcOfferTest:test_initialization() (gas: 14881) +MultiOtcOfferTest:test_market_pause() (gas: 1099984) +MultiOtcOfferTest:test_removeOtcMarket() (gas: 244194) +MultiOtcOfferTest:test_setMarketFundsOwner() (gas: 312444) +MultiOtcOfferTest:test_setOfferPrice() (gas: 313548) +MultiOtcOfferTest:test_setOfferPriceRange() (gas: 310743) +MultiOtcOfferTest:test_swap_dai_ohm() (gas: 800400) +MultiOtcOfferTest:test_swap_fail() (gas: 909153) +MultiOtcOfferTest:test_swap_ohm_dai() (gas: 802000) +MultiOtcOfferTest:test_swap_ohm_usdc() (gas: 847797) +MultiOtcOfferTestBase:test_initialization() (gas: 14845) +MultiOtcOfferViewTest:test_getMarketIdByTokens() (gas: 280298) +MultiOtcOfferViewTest:test_getOtcMarketIds() (gas: 516122) +MultiOtcOfferViewTest:test_getOtcMarketInfo() (gas: 532510) +MultiOtcOfferViewTest:test_getOtcMarketTokens() (gas: 528773) +MultiOtcOfferViewTest:test_initialization() (gas: 14859) +MultiOtcOfferViewTest:test_quote() (gas: 763936) +MultiOtcOfferViewTest:test_tokenPairExists() (gas: 291874) +MultiOtcOfferViewTest:test_userBuyTokensAvailable() (gas: 1240974) +OtcOfferTestAccess:test_access_pause() (gas: 13507) +OtcOfferTestAccess:test_access_setFundsOwner() (gas: 15782) +OtcOfferTestAccess:test_access_setOfferPrice() (gas: 13576) +OtcOfferTestAccess:test_access_setOfferPriceRange() (gas: 13797) +OtcOfferTestAccess:test_access_unpause() (gas: 13553) +OtcOfferTestAdmin:test_init() (gas: 64178) +OtcOfferTestAdmin:test_pause() (gas: 885844) +OtcOfferTestAdmin:test_setFundsOwner() (gas: 27455) +OtcOfferTestAdmin:test_setOfferPriceRange() (gas: 26647) +OtcOfferTestAdmin:test_setOfferPrice_failDeltaAbove() (gas: 15597) +OtcOfferTestAdmin:test_setOfferPrice_failDeltaBelow() (gas: 15469) +OtcOfferTestAdmin:test_setOfferPrice_success() (gas: 30482) +OtcOfferTestSwap:test_quote() (gas: 23272) +OtcOfferTestSwap:test_swap_daiohm_success() (gas: 593373) +OtcOfferTestSwap:test_swap_fail() (gas: 713149) +OtcOfferTestSwap:test_swap_ohmdai_success() (gas: 593447) +OtcOfferTestSwap:test_swap_ohmusdc_success() (gas: 636880) +OtcOfferTestSwap:test_userBuyTokenAvailable() (gas: 730234) +RamosStrategyTestAccess:test_access_addLiquidity() (gas: 154405) +RamosStrategyTestAccess:test_access_borrowProtocolToken() (gas: 20418) +RamosStrategyTestAccess:test_access_borrowQuoteToken() (gas: 20373) +RamosStrategyTestAccess:test_access_removeLiquidity() (gas: 129393) +RamosStrategyTestAccess:test_access_repayProtocolToken() (gas: 18224) +RamosStrategyTestAccess:test_access_repayQuoteToken() (gas: 18193) +RamosStrategyTestAdmin:test_automatedShutdown() (gas: 1254931) +RamosStrategyTestAdmin:test_initalization() (gas: 39080) +RamosStrategyTestAdmin:test_setTreasuryReservesVault() (gas: 4445889) +RamosStrategyTestBalances:test_latestAssetBalances() (gas: 1324534) +RamosStrategyTestBorrowAndRepay:test_addLiquidity() (gas: 1304276) +RamosStrategyTestBorrowAndRepay:test_removeLiquidity() (gas: 1526607) +RamosStrategyTestVaultFunctions:test_borrowProtocolToken() (gas: 331211) +RamosStrategyTestVaultFunctions:test_borrowProtocolToken_failCircuitBreaker() (gas: 79111) +RamosStrategyTestVaultFunctions:test_borrowQuoteToken() (gas: 270443) +RamosStrategyTestVaultFunctions:test_borrowQuoteToken_failCircuitBreaker() (gas: 79097) +RamosStrategyTestVaultFunctions:test_repayProtocolToken() (gas: 398644) +RamosStrategyTestVaultFunctions:test_repayQuoteToken() (gas: 273853) +TempleCircuitBreakerProxyTest:test_access_preCheck() (gas: 20243) +TempleCircuitBreakerProxyTest:test_access_setCircuitBreaker() (gas: 22582) +TempleCircuitBreakerProxyTest:test_access_setIdentifierForCaller() (gas: 18751) +TempleCircuitBreakerProxyTest:test_initialisation() (gas: 18497) +TempleCircuitBreakerProxyTest:test_preCheck_success() (gas: 333513) +TempleCircuitBreakerProxyTest:test_preCheck_unknownId() (gas: 247286) +TempleCircuitBreakerProxyTest:test_preCheck_unknownToken() (gas: 247283) +TempleCircuitBreakerProxyTest:test_setCircuitBreaker_failNoCircuitBreaker() (gas: 113410) +TempleCircuitBreakerProxyTest:test_setCircuitBreaker_failNoIdentifier() (gas: 20049) +TempleCircuitBreakerProxyTest:test_setCircuitBreaker_success() (gas: 142830) +TempleCircuitBreakerProxyTest:test_setIdentifierForCaller_failBadAddress() (gas: 16072) +TempleCircuitBreakerProxyTest:test_setIdentifierForCaller_failBadId() (gas: 18171) +TempleCircuitBreakerProxyTest:test_setIdentifierForCaller_success() (gas: 115216) +TempleCircuitBreakerTestBase:test_access_setConfig() (gas: 18413) +TempleCircuitBreakerTestBase:test_access_updateCap() (gas: 18226) +TempleCircuitBreakerTestBase:test_initialization() (gas: 13301) +TempleCircuitBreakerTestBase:test_setConfig() (gas: 88322504) +TempleCircuitBreakerTestBase:test_updateCap() (gas: 23403) +TempleCircuitBreakerTestPreCheck:test_access_setConfig() (gas: 18391) +TempleCircuitBreakerTestPreCheck:test_access_updateCap() (gas: 18182) +TempleCircuitBreakerTestPreCheck:test_gas() (gas: 42372489) +TempleCircuitBreakerTestPreCheck:test_initialization() (gas: 13302) +TempleCircuitBreakerTestPreCheck:test_preCheck_1day_24buckets() (gas: 3371345) +TempleCircuitBreakerTestPreCheck:test_preCheck_1day_24buckets_wait() (gas: 997795) +TempleCircuitBreakerTestPreCheck:test_preCheck_2day_8buckets() (gas: 4380205) +TempleCircuitBreakerTestPreCheck:test_preCheck_addSameBucket() (gas: 91775) +TempleCircuitBreakerTestPreCheck:test_setConfig() (gas: 88322570) +TempleCircuitBreakerTestPreCheck:test_updateCap() (gas: 23403) +TempleDebtTokenTestAdmin:test_access_addAndRemoveMinter() (gas: 29448) +TempleDebtTokenTestAdmin:test_access_burn() (gas: 15881) +TempleDebtTokenTestAdmin:test_access_burnAll() (gas: 15834) +TempleDebtTokenTestAdmin:test_access_mint() (gas: 15897) +TempleDebtTokenTestAdmin:test_access_recoverToken() (gas: 20546) +TempleDebtTokenTestAdmin:test_access_setBaseInterestRate() (gas: 18249) +TempleDebtTokenTestAdmin:test_access_setRiskPremiumInterestRate() (gas: 20405) +TempleDebtTokenTestAdmin:test_addAndRemoveMinter() (gas: 35880) +TempleDebtTokenTestAdmin:test_initalization() (gas: 28954) +TempleDebtTokenTestAdmin:test_nonTransferrable() (gas: 21398) +TempleDebtTokenTestAdmin:test_recoverToken() (gas: 685707) +TempleDebtTokenTestBaseAndDebtorInterest:test_balanceEvents() (gas: 113104) +TempleDebtTokenTestBaseAndDebtorInterest:test_burnAll() (gas: 192263) +TempleDebtTokenTestBaseAndDebtorInterest:test_burn_aliceAndBob_aDayLater() (gas: 157312) +TempleDebtTokenTestBaseAndDebtorInterest:test_burn_aliceAndBob_inDifferentBlocks() (gas: 182166) +TempleDebtTokenTestBaseAndDebtorInterest:test_burn_aliceAndBob_inSameBlock() (gas: 117270) +TempleDebtTokenTestBaseAndDebtorInterest:test_burn_aliceAndBob_partial() (gas: 219519) +TempleDebtTokenTestBaseAndDebtorInterest:test_burn_alice_aDayLater() (gas: 100332) +TempleDebtTokenTestBaseAndDebtorInterest:test_burn_alice_flippedRates() (gas: 170678) +TempleDebtTokenTestBaseAndDebtorInterest:test_burn_alice_inSameBlock() (gas: 74764) +TempleDebtTokenTestBaseAndDebtorInterest:test_burn_alice_interestRepayOnly() (gas: 152774) +TempleDebtTokenTestBaseAndDebtorInterest:test_checkpointDebtorsInterest() (gas: 219962) +TempleDebtTokenTestBaseAndDebtorInterest:test_currentDebtOf() (gas: 218914) +TempleDebtTokenTestBaseAndDebtorInterest:test_currentDebtsOf() (gas: 217511) +TempleDebtTokenTestBaseAndDebtorInterest:test_mint_alice() (gas: 136932) +TempleDebtTokenTestBaseAndDebtorInterest:test_mint_aliceAndBob_inDifferentBlock() (gas: 208344) +TempleDebtTokenTestBaseAndDebtorInterest:test_mint_aliceAndBob_inSameBlock() (gas: 196033) +TempleDebtTokenTestBaseAndDebtorInterest:test_mint_and_burn_fuzz(address,uint256,uint256) (runs: 1000, μ: 126864, ~: 126947) +TempleDebtTokenTestBaseAndDebtorInterest:test_setRiskPremiumInterestRate() (gas: 278897) +TempleDebtTokenTestBaseAndDebtorInterest:test_setRiskPremiumInterestRateToZero() (gas: 273340) +TempleDebtTokenTestBaseInterestOnly:test_burnAll() (gas: 179211) +TempleDebtTokenTestBaseInterestOnly:test_burnAll_zeroAmount() (gas: 31279) +TempleDebtTokenTestBaseInterestOnly:test_burn_aliceAndBob_aDayLater() (gas: 173631) +TempleDebtTokenTestBaseInterestOnly:test_burn_aliceAndBob_inDifferentBlocks() (gas: 192474) +TempleDebtTokenTestBaseInterestOnly:test_burn_aliceAndBob_inSameBlock() (gas: 148259) +TempleDebtTokenTestBaseInterestOnly:test_burn_aliceAndBob_partial() (gas: 229744) +TempleDebtTokenTestBaseInterestOnly:test_burn_alice_aDayLater() (gas: 109204) +TempleDebtTokenTestBaseInterestOnly:test_burn_alice_inSameBlock() (gas: 92859) +TempleDebtTokenTestBaseInterestOnly:test_burn_alice_interestRepayOnly() (gas: 148818) +TempleDebtTokenTestBaseInterestOnly:test_burn_invalidParams() (gas: 20411) +TempleDebtTokenTestBaseInterestOnly:test_burn_tooMuch_cap() (gas: 82852) +TempleDebtTokenTestBaseInterestOnly:test_currentDebtOf() (gas: 193139) +TempleDebtTokenTestBaseInterestOnly:test_mint_alice() (gas: 133023) +TempleDebtTokenTestBaseInterestOnly:test_mint_aliceAndBob_inDifferentBlock() (gas: 205630) +TempleDebtTokenTestBaseInterestOnly:test_mint_aliceAndBob_inSameBlock() (gas: 201784) +TempleDebtTokenTestBaseInterestOnly:test_mint_invalidParams() (gas: 19481) +TempleDebtTokenTestBaseInterestOnly:test_setBaseInterestRate() (gas: 244311) +TempleDebtTokenTestBaseInterestOnly:test_shareToDebtConversion() (gas: 187117) +TempleDebtTokenTestBaseInterestOnly:test_zeroInterest() (gas: 186096) +TempleDebtTokenTestDebtorInterestOnly:test_burnAll() (gas: 176384) +TempleDebtTokenTestDebtorInterestOnly:test_burn_aliceAndBob_aDayLater() (gas: 147751) +TempleDebtTokenTestDebtorInterestOnly:test_burn_aliceAndBob_inDifferentBlocks() (gas: 168912) +TempleDebtTokenTestDebtorInterestOnly:test_burn_aliceAndBob_inSameBlock() (gas: 117208) +TempleDebtTokenTestDebtorInterestOnly:test_burn_aliceAndBob_partial() (gas: 197607) +TempleDebtTokenTestDebtorInterestOnly:test_burn_alice_aDayLater() (gas: 93162) +TempleDebtTokenTestDebtorInterestOnly:test_burn_alice_inSameBlock() (gas: 74685) +TempleDebtTokenTestDebtorInterestOnly:test_burn_alice_interestRepayOnly() (gas: 142822) +TempleDebtTokenTestDebtorInterestOnly:test_checkpointDebtorsInterest() (gas: 202685) +TempleDebtTokenTestDebtorInterestOnly:test_currentDebtOf() (gas: 181377) +TempleDebtTokenTestDebtorInterestOnly:test_mint_alice() (gas: 133450) +TempleDebtTokenTestDebtorInterestOnly:test_mint_aliceAndBob_inDifferentBlock() (gas: 199743) +TempleDebtTokenTestDebtorInterestOnly:test_mint_aliceAndBob_inSameBlock() (gas: 192557) +TempleDebtTokenTestDebtorInterestOnly:test_setRiskPremiumInterestRate() (gas: 232272) +TempleDebtTokenTestDebtorInterestOnly:test_setRiskPremiumInterestRateToZero() (gas: 228855) +TempleDebtTokenTestZeroInterest:test_mint_aliceAndBob_inDifferentBlock() (gas: 199104) +TempleElevatedAccessTest:test_access_acceptExecutor() (gas: 25541) +TempleElevatedAccessTest:test_access_acceptRescuer() (gas: 25553) +TempleElevatedAccessTest:test_access_proposeNewExecutor() (gas: 86873) +TempleElevatedAccessTest:test_access_proposeNewRescuer() (gas: 51712) +TempleElevatedAccessTest:test_access_setExplicitAccess() (gas: 21146) +TempleElevatedAccessTest:test_access_setRescueMode() (gas: 48441) +TempleElevatedAccessTest:test_construction_fail() (gas: 114190) +TempleElevatedAccessTest:test_initialization() (gas: 17675) +TempleElevatedAccessTestBase:test_construction_fail() (gas: 114145) +TempleElevatedAccessTestBase:test_initialization() (gas: 17675) +TempleElevatedAccessTestModifiers:test_construction_fail() (gas: 114190) +TempleElevatedAccessTestModifiers:test_initialization() (gas: 17698) +TempleElevatedAccessTestModifiers:test_onlyElevatedAccess_explicitExternal() (gas: 86370) +TempleElevatedAccessTestModifiers:test_onlyElevatedAccess_inRescueMode() (gas: 75789) +TempleElevatedAccessTestModifiers:test_onlyElevatedAccess_notInRescueMode() (gas: 61382) +TempleElevatedAccessTestModifiers:test_onlyInRescueMode() (gas: 56307) +TempleElevatedAccessTestSetters:test_construction_fail() (gas: 114190) +TempleElevatedAccessTestSetters:test_initialization() (gas: 17719) +TempleElevatedAccessTestSetters:test_newExecutor() (gas: 44761) +TempleElevatedAccessTestSetters:test_newExecutor_failNotTheSame() (gas: 47913) +TempleElevatedAccessTestSetters:test_newRescuer() (gas: 41164) +TempleElevatedAccessTestSetters:test_newRescuer_failNotTheSame() (gas: 45621) +TempleElevatedAccessTestSetters:test_setExplicitAccess_multiple() (gas: 61712) +TempleElevatedAccessTestSetters:test_setExplicitAccess_single() (gas: 50711) +TempleElevatedAccessTestSetters:test_setExplicitAccess_zeroSig() (gas: 55266) +TempleElevatedAccessTestSetters:test_setRescueMode() (gas: 31094) +TempleLineOfCreditTestBatchLiquidate:test_batchLiquidate_noAccounts() (gas: 496555) +TempleLineOfCreditTestBatchLiquidate:test_batchLiquidate_oneAccount_liquidate() (gas: 627762) +TempleLineOfCreditTestBatchLiquidate:test_batchLiquidate_oneAccount_noLiquidate() (gas: 498865) +TempleLineOfCreditTestBatchLiquidate:test_batchLiquidate_oneAccount_noLiquidateAtMax() (gas: 501772) +TempleLineOfCreditTestBatchLiquidate:test_batchLiquidate_paused_complex() (gas: 696804) +TempleLineOfCreditTestBatchLiquidate:test_batchLiquidate_paused_simple() (gas: 505287) +TempleLineOfCreditTestBatchLiquidate:test_batchLiquidate_requestDoesntLiquidate() (gas: 505060) +TempleLineOfCreditTestBatchLiquidate:test_batchLiquidate_twoAccounts_oneLiquidate() (gas: 936992) +TempleLineOfCreditTestBatchLiquidate:test_batchLiquidate_twoAccounts_twoLiquidate() (gas: 919907) +TempleLineOfCreditTestBorrow:test_borrowDai_success() (gas: 533273) +TempleLineOfCreditTestBorrow:test_borrow_circuitBreaker() (gas: 546072) +TempleLineOfCreditTestBorrow:test_borrow_differentRecipient() (gas: 471049) +TempleLineOfCreditTestBorrow:test_borrow_failCheckLiquidity() (gas: 619942) +TempleLineOfCreditTestBorrow:test_borrow_failsUnderMinAmount() (gas: 237303) +TempleLineOfCreditTestBorrow:test_borrow_failsZeroLtv() (gas: 353242) +TempleLineOfCreditTestBorrow:test_borrow_gas() (gas: 1250304) +TempleLineOfCreditTestBorrow:test_borrow_rescueMode() (gas: 484840) +TempleLineOfCreditTestBorrow:test_pause_borrow() (gas: 512592) +TempleLineOfCreditTestCheckLiquidity:test_computeLiquidity_afterRepayAll() (gas: 644386) +TempleLineOfCreditTestCheckLiquidity:test_computeLiquidity_noBorrowsNoCollateral() (gas: 52615) +TempleLineOfCreditTestCheckLiquidity:test_computeLiquidity_noBorrowsWithCollateral() (gas: 268552) +TempleLineOfCreditTestCheckLiquidity:test_computeLiquidity_withBorrowAtMaxLTV() (gas: 488529) +TempleLineOfCreditTestCheckLiquidity:test_computeLiquidity_withBorrowOverMaxLTV() (gas: 498185) +TempleLineOfCreditTestCheckLiquidity:test_computeLiquidity_withBorrowUnderMaxLTV() (gas: 485636) +TempleLineOfCreditTestInterestAccrual:test_borrow_accruesInterestRate() (gas: 677327) +TempleLineOfCreditTestInterestAccrual:test_trvCapChange() (gas: 588709) +TempleLineOfCreditTestRepay:test_repayAllOnBehalfOf_success() (gas: 783977) +TempleLineOfCreditTestRepay:test_repayAll_failsZeroAmount() (gas: 52016) +TempleLineOfCreditTestRepay:test_repayAll_success() (gas: 799281) +TempleLineOfCreditTestRepay:test_repayEverything_success() (gas: 799532) +TempleLineOfCreditTestRepay:test_repayOnBehalfOf_success() (gas: 784212) +TempleLineOfCreditTestRepay:test_repay_failsNoBorrows() (gas: 52503) +TempleLineOfCreditTestRepay:test_repay_failsTooMuch() (gas: 480745) +TempleLineOfCreditTestRepay:test_repay_failsZeroAmount() (gas: 13684) +TempleLineOfCreditTestRepay:test_repay_gas() (gas: 1550450) +TempleLineOfCreditTestRepay:test_repay_rescueMode() (gas: 623757) +TempleLineOfCreditTestRepay:test_repay_success() (gas: 645568) +TempleLineOfCreditTest_Access:test_access_recoverToken() (gas: 22645) +TempleLineOfCreditTest_Access:test_access_setBorrowPaused() (gas: 18194) +TempleLineOfCreditTest_Access:test_access_setInterestRateModel() (gas: 20330) +TempleLineOfCreditTest_Access:test_access_setLiquidationsPaused() (gas: 18224) +TempleLineOfCreditTest_Access:test_access_setMaxLtvRatio() (gas: 18118) +TempleLineOfCreditTest_Access:test_access_setMinBorrowAmount() (gas: 18254) +TempleLineOfCreditTest_Access:test_access_setTlcStrategy() (gas: 20332) +TempleLineOfCreditTest_Admin:test_creation() (gas: 4255833) +TempleLineOfCreditTest_Admin:test_getDebtTokenCache() (gas: 492407) +TempleLineOfCreditTest_Admin:test_init_bad_config() (gas: 223940) +TempleLineOfCreditTest_Admin:test_initalization() (gas: 33009) +TempleLineOfCreditTest_Admin:test_recoverToken() (gas: 723704) +TempleLineOfCreditTest_Admin:test_refreshInterestRates() (gas: 514172) +TempleLineOfCreditTest_Admin:test_setBorrowPaused() (gas: 39428) +TempleLineOfCreditTest_Admin:test_setInterestRateModel_noDebt() (gas: 1215606) +TempleLineOfCreditTest_Admin:test_setInterestRateModel_withDebt() (gas: 1635646) +TempleLineOfCreditTest_Admin:test_setLiquidationsPaused() (gas: 25504) +TempleLineOfCreditTest_Admin:test_setMaxLtvRatio() (gas: 37161) +TempleLineOfCreditTest_Admin:test_setMinBorrowAmount() (gas: 23474) +TempleLineOfCreditTest_Admin:test_setTlcStrategy() (gas: 7114804) +TempleLineOfCreditTest_Collateral:test_addCollateral_failsZeroBalance() (gas: 13604) +TempleLineOfCreditTest_Collateral:test_addCollateral_gas() (gas: 645237) +TempleLineOfCreditTest_Collateral:test_addCollateral_success() (gas: 429778) +TempleLineOfCreditTest_Collateral:test_removeCollateral_circuitBreaker() (gas: 370260) +TempleLineOfCreditTest_Collateral:test_removeCollateral_differentRecipient() (gas: 342629) +TempleLineOfCreditTest_Collateral:test_removeCollateral_failCheckLiquidity() (gas: 728836) +TempleLineOfCreditTest_Collateral:test_removeCollateral_failsTooMuch() (gas: 235622) +TempleLineOfCreditTest_Collateral:test_removeCollateral_failsZeroAmount() (gas: 13591) +TempleLineOfCreditTest_Collateral:test_removeCollateral_gas() (gas: 966177) +TempleLineOfCreditTest_Collateral:test_removeCollateral_rescueMode() (gas: 365688) +TempleLineOfCreditTest_Collateral:test_removeCollateral_successWithChecks() (gas: 390008) +TempleLineOfCreditTest_Positions:test_accountPosition_afterAddCollateral() (gas: 278206) +TempleTeamPaymentsFactoryTest:testCanClaimAllocation() (gas: 331194) +TempleTeamPaymentsFactoryTest:testCanClaimAllocationPartial() (gas: 342345) +TempleTeamPaymentsFactoryTest:testCanPauseMember() (gas: 317121) +TempleTeamPaymentsFactoryTest:testCanSetAllocation() (gas: 294000) +TempleTeamPaymentsFactoryTest:testCannotClaimPause() (gas: 316218) +TempleTeamPaymentsFactoryTest:testCannotClaimTwice() (gas: 326075) +TempleTeamPaymentsFactoryTest:testCannotInitializeTwice() (gas: 288845) +TempleTeamPaymentsFactoryTest:testCannotSetAllocationsLengthMismatch() (gas: 291077) +TempleTeamPaymentsFactoryTest:testCannotSetAllocationsZeroAddress() (gas: 291049) +TempleTeamPaymentsFactoryTest:testDeployPayoutsMany() (gas: 1637659) +TempleTeamPaymentsFactoryTest:testDeployPayoutsSingle() (gas: 286779) +TempleTeamPaymentsFactoryTest:testDirectPayoutsMany() (gas: 1900023) +TempleTeamPaymentsFactoryTest:testDirectPayoutsSingle() (gas: 141563) +TempleTeamPaymentsFactoryTest:testRoundIncrementsDeployPayout() (gas: 288697) +TempleTeamPaymentsFactoryTest:testRoundIncrementsDirectPayout() (gas: 143516) +TempleTokenBaseStrategyTestAccess:test_access_borrowAndDeposit() (gas: 18102) +TempleTokenBaseStrategyTestAccess:test_access_trvDeposit() (gas: 13610) +TempleTokenBaseStrategyTestAccess:test_access_trvWithdraw() (gas: 13566) +TempleTokenBaseStrategyTestAdmin:test_initalization() (gas: 35843) +TempleTokenBaseStrategyTestBorrow:test_automatedShutdown() (gas: 15724) +TempleTokenBaseStrategyTestBorrow:test_borrowAndDeposit() (gas: 198492) +TempleTokenBaseStrategyTestBorrow:test_latestAssetBalances() (gas: 9125) +TempleTokenBaseStrategyTrvWithdraw:test_trvDeposit() (gas: 222365) +TempleTokenBaseStrategyTrvWithdraw:test_trvWithdraw_capped() (gas: 197565) +TempleTokenBaseStrategyTrvWithdraw:test_trvWithdraw_complex() (gas: 603257) +TempleTokenBaseStrategyTrvWithdraw:test_trvWithdraw_inIsoloation() (gas: 195482) +ThresholdSafeGuardExecuteTest:test_checkSafeExecute_withOverrideTresholdSet_ethTransfer() (gas: 215495) +ThresholdSafeGuardExecuteTest:test_checkSafeExecute_withOverrideTresholdSet_function() (gas: 237166) +ThresholdSafeGuardExecuteTest:test_checkSafeExecute_withOverrideTresholdSet_withContractSig() (gas: 313948) +ThresholdSafeGuardTest:test_checkTransaction_3Required_0Found() (gas: 68182) +ThresholdSafeGuardTest:test_checkTransaction_3Required_1Found() (gas: 69912) +ThresholdSafeGuardTest:test_checkTransaction_3Required_2Found() (gas: 76543) +ThresholdSafeGuardTest:test_checkTransaction_3Required_3Found() (gas: 99048) +ThresholdSafeGuardTest:test_checkTransaction_3Required_DuplicateSigner() (gas: 91932) +ThresholdSafeGuardTest:test_checkTransaction_badPreApproval() (gas: 87117) +ThresholdSafeGuardTest:test_checkTransaction_disabled() (gas: 150134) +ThresholdSafeGuardTest:test_checkTransaction_executor() (gas: 118710) +ThresholdSafeGuardTest:test_checkTransaction_notExecutor() (gas: 41519) +ThresholdSafeGuardTest:test_checkTransaction_safeOwner() (gas: 50557) +ThresholdSafeGuardTest:test_checkTransaction_safeThresholdOfOne() (gas: 54014) +ThresholdSafeGuardTest:test_checkTransaction_withContractSig() (gas: 270242) +ThresholdSafeGuardTest:test_checkTransaction_withOverrideThresholdSet() (gas: 200437) +ThresholdSafeGuardTest:test_checkTransaction_withOverrideTresholdSet_zeroSelector() (gas: 152137) +ThresholdSafeGuardTest:test_setEthTransferThreshold(address,uint256) (runs: 1000, μ: 42488, ~: 42792) +ThresholdSafeGuardTest:test_setFunctionThreshold(address,bytes4,uint256) (runs: 1000, μ: 43711, ~: 44211) +ThresholdSafeGuardTest:test_setFunctionThresholdBatch(address,bytes4,bytes4,uint256) (runs: 1000, μ: 67418, ~: 74427) +ThresholdSafeGuardTestAccess:test_access_addSafeTxExecutor() (gas: 20314) +ThresholdSafeGuardTestAccess:test_access_recoverToken() (gas: 22626) +ThresholdSafeGuardTestAccess:test_access_removeSafeTxExecutor() (gas: 20312) +ThresholdSafeGuardTestAccess:test_access_setDefaultSignaturesThreshold() (gas: 18158) +ThresholdSafeGuardTestAccess:test_access_setDisableGuardChecks() (gas: 78648) +ThresholdSafeGuardTestAccess:test_access_setEthTransferThreshold() (gas: 20374) +ThresholdSafeGuardTestAccess:test_access_setFunctionThreshold() (gas: 23682) +ThresholdSafeGuardTestAccess:test_access_setFunctionThresholdBatch() (gas: 25543) +ThresholdSafeGuardTestAdmin:test_addAndremoveSafeTxExecutor() (gas: 123264) +ThresholdSafeGuardTestAdmin:test_initalization() (gas: 26818) +ThresholdSafeGuardTestAdmin:test_recoverToken() (gas: 285145) +ThresholdSafeGuardTestAdmin:test_setDisableGuardChecks(bool) (runs: 1000, μ: 52483, ~: 42812) +TlcStrategyTest:test_access_fundFromTrv() (gas: 2214891) +TlcStrategyTest:test_automatedShutdown() (gas: 2212897) +TlcStrategyTest:test_fundFromTrv() (gas: 2353295) +TlcStrategyTest:test_initalization() (gas: 2224414) +TlcStrategyTest:test_latestAssetBalances() (gas: 2679666) +TreasuryPriceIndexOracleTest:test_access_setMaxAbsTreasuryPriceIndexRateOfChange() (gas: 18327) +TreasuryPriceIndexOracleTest:test_access_setMaxTreasuryPriceIndexDelta() (gas: 18187) +TreasuryPriceIndexOracleTest:test_access_setMinTreasuryPriceIndexTargetTimeDelta() (gas: 18299) +TreasuryPriceIndexOracleTest:test_access_setTreasuryPriceIndexAt() (gas: 18407) +TreasuryPriceIndexOracleTest:test_initialize() (gas: 17958) +TreasuryPriceIndexOracleTest:test_setMaxAbsTreasuryPriceIndexRateOfChange() (gas: 23801) +TreasuryPriceIndexOracleTest:test_setMaxTreasuryPriceIndexDelta() (gas: 23400) +TreasuryPriceIndexOracleTest:test_setMinTreasuryPriceIndexTargetTimeDelta() (gas: 20695) +TreasuryPriceIndexOracleTest:test_setTreasuryPriceIndexAt_breachDeltaDown() (gas: 59288) +TreasuryPriceIndexOracleTest:test_setTreasuryPriceIndexAt_breachDeltaUp() (gas: 59071) +TreasuryPriceIndexOracleTest:test_setTreasuryPriceIndexAt_breachMaxTpiRateOfChange() (gas: 61813) +TreasuryPriceIndexOracleTest:test_setTreasuryPriceIndexAt_breachMinDateDelta() (gas: 71357) +TreasuryPriceIndexOracleTest:test_setTreasuryPriceIndexAt_decreasesAtExpectedRateYear() (gas: 1459596) +TreasuryPriceIndexOracleTest:test_setTreasuryPriceIndexAt_flatAtTargetTime() (gas: 58852) +TreasuryPriceIndexOracleTest:test_setTreasuryPriceIndexAt_immediate_successDown() (gas: 62820) +TreasuryPriceIndexOracleTest:test_setTreasuryPriceIndexAt_immediate_successUp() (gas: 62700) +TreasuryPriceIndexOracleTest:test_setTreasuryPriceIndexAt_increasesAtExpectedRateSecs() (gas: 64674) +TreasuryPriceIndexOracleTest:test_setTreasuryPriceIndexAt_increasesAtExpectedRateYear() (gas: 1461407) +TreasuryPriceIndexOracleTest:test_setTreasuryPriceIndexAt_keepTheSame() (gas: 33028) +TreasuryReservesVaultTestAccess:test_access_addStrategy() (gas: 20868) +TreasuryReservesVaultTestAccess:test_access_recoverToken() (gas: 22561) +TreasuryReservesVaultTestAccess:test_access_removeBorrowToken() (gas: 20367) +TreasuryReservesVaultTestAccess:test_access_setBorrowToken() (gas: 22716) +TreasuryReservesVaultTestAccess:test_access_setGlobalPaused() (gas: 18329) +TreasuryReservesVaultTestAccess:test_access_setStrategyDebtCeiling() (gas: 22595) +TreasuryReservesVaultTestAccess:test_access_setStrategyIsShuttingDown() (gas: 20453) +TreasuryReservesVaultTestAccess:test_access_setStrategyPaused() (gas: 20527) +TreasuryReservesVaultTestAccess:test_access_setStrategyUnderperformingThreshold() (gas: 20406) +TreasuryReservesVaultTestAccess:test_access_setTpiOracle() (gas: 20328) +TreasuryReservesVaultTestAccess:test_access_shutdown() (gas: 35651) +TreasuryReservesVaultTestAccess:test_access_updateStrategyEnabledBorrowTokens() (gas: 21235) +TreasuryReservesVaultTestAdmin:test_addStrategy() (gas: 629287) +TreasuryReservesVaultTestAdmin:test_addStrategy_overflow() (gas: 629979) +TreasuryReservesVaultTestAdmin:test_initalization() (gas: 28095) +TreasuryReservesVaultTestAdmin:test_recoverToken() (gas: 285156) +TreasuryReservesVaultTestAdmin:test_removeBorrowToken() (gas: 138266) +TreasuryReservesVaultTestAdmin:test_setBorrowToken() (gas: 176107) +TreasuryReservesVaultTestAdmin:test_setGlobalPaused() (gas: 25146) +TreasuryReservesVaultTestAdmin:test_setStrategyDebtCeiling() (gas: 356763) +TreasuryReservesVaultTestAdmin:test_setStrategyDebtCeiling_overflow() (gas: 510435) +TreasuryReservesVaultTestAdmin:test_setStrategyPaused() (gas: 298069) +TreasuryReservesVaultTestAdmin:test_setStrategyUnderperformingThreshold() (gas: 277900) +TreasuryReservesVaultTestAdmin:test_setTpiOracle() (gas: 2867738) +TreasuryReservesVaultTestAdmin:test_updateStrategyEnabledBorrowTokens() (gas: 591320) +TreasuryReservesVaultTestBorrow:test_borrowMax() (gas: 615834) +TreasuryReservesVaultTestBorrow:test_borrow_baseStrategyOverflow() (gas: 3047659) +TreasuryReservesVaultTestBorrow:test_borrow_baseStrategyWithdraw_NoDebtTokens() (gas: 2621201) +TreasuryReservesVaultTestBorrow:test_borrow_fromCredits() (gas: 873750) +TreasuryReservesVaultTestBorrow:test_borrow_reverts() (gas: 783431) +TreasuryReservesVaultTestBorrow:test_borrow_withBaseStrategy_allTrvBalance_outstandingBaseStrategyDebt() (gas: 2985800) +TreasuryReservesVaultTestBorrow:test_borrow_withBaseStrategy_noBaseStrategy() (gas: 643286) +TreasuryReservesVaultTestBorrow:test_borrow_withBaseStrategy_noSelfBorrow() (gas: 2904712) +TreasuryReservesVaultTestBorrow:test_borrow_withBaseStrategy_trvWithdraw_someBuffer_baseStrategyDebtRepaid() (gas: 3138910) +TreasuryReservesVaultTestBorrow:test_borrow_withBaseStrategy_useTrvBalanceFirst_outstandingBaseStrategyDebt() (gas: 2991970) +TreasuryReservesVaultTestRepay:test_repayAll() (gas: 633092) +TreasuryReservesVaultTestRepay:test_repay_overflow() (gas: 1043152) +TreasuryReservesVaultTestRepay:test_repay_reverts_noDTokenDebts() (gas: 1032932) +TreasuryReservesVaultTestRepay:test_repay_withBaseStrategy_noSelfRepay() (gas: 2837865) +TreasuryReservesVaultTestRepay:test_repay_withBaseStrategy_overWithdrawalThreshold() (gas: 3019229) +TreasuryReservesVaultTestRepay:test_repay_withBaseStrategy_under2xThreshold() (gas: 2913823) +TreasuryReservesVaultTestRepay:test_repay_withBaseStrategy_underThreshold() (gas: 2913849) +TreasuryReservesVaultTestRepay:test_repay_withDTokenDebts_noCreditLeft() (gas: 791936) +TreasuryReservesVaultTestRepay:test_repay_withDTokenDebts_someCreditLeft() (gas: 808030) +TreasuryReservesVaultTestShutdown:test_setStrategyIsShuttingDown() (gas: 297312) +TreasuryReservesVaultTestShutdown:test_shutdown_withOutstandingCredit() (gas: 1342904) +TreasuryReservesVaultTestShutdown:test_shutdown_withOutstandingDebt() (gas: 1128506) +TreasuryReservesVaultTestShutdown:test_shutdown_zeroBalance() (gas: 420037) +TreasuryReservesVaultTestViews:test_balanceSheet() (gas: 1500097) +TreasuryReservesVaultTestViews:test_totalAvailable() (gas: 2878046) \ No newline at end of file diff --git a/protocol/contracts/interfaces/v2/ITreasuryPriceIndexOracle.sol b/protocol/contracts/interfaces/v2/ITreasuryPriceIndexOracle.sol index 62a788e86..3ff8f2430 100644 --- a/protocol/contracts/interfaces/v2/ITreasuryPriceIndexOracle.sol +++ b/protocol/contracts/interfaces/v2/ITreasuryPriceIndexOracle.sol @@ -8,52 +8,83 @@ import { ITempleElevatedAccess } from "contracts/interfaces/v2/access/ITempleEle * @title Treasury Price Index Oracle * @notice The custom oracle (not dependant on external markets/AMMs/dependencies) to give the * Treasury Price Index, representing the target Treasury Value per token. - * This rate is updated manually with elevated permissions. The new TPI doesn't take effect until after a cooldown. */ interface ITreasuryPriceIndexOracle is ITempleElevatedAccess { - event TreasuryPriceIndexSet(uint96 oldTpi, uint96 newTpi); - event TpiCooldownSet(uint32 cooldownSecs); + event TreasuryPriceIndexSetAt(uint96 oldTpi, uint96 newTpiTarget, uint256 targetTime); event MaxTreasuryPriceIndexDeltaSet(uint256 maxDelta); + event MinTreasuryPriceIndexTargetTimeDeltaSet(uint32 maxTargetTimeDelta); + event MaxAbsTreasuryPriceIndexRateOfChangeSet(uint96 maxAbsRateOfChange); error BreachedMaxTpiDelta(uint96 oldTpi, uint96 newTpi, uint256 maxDelta); + error BreachedMinDateDelta(uint32 targetTime, uint32 currentDate, uint32 maxTargetTimeDelta); + error BreachedMaxTpiRateOfChange(uint96 targetRateOfChange, uint96 maxRateOfChange); /** * @notice The current Treasury Price Index (TPI) value - * @dev If the TPI has just been updated, the old TPI will be used until `cooldownSecs` has elapsed */ function treasuryPriceIndex() external view returns (uint96); /** - * @notice The maximum allowed TPI change on any single `setTreasuryPriceIndex()`, in absolute terms. - * @dev Used as a bound to avoid unintended/fat fingering when updating TPI + * @notice The maximum allowed TPI change on any single `setTreasuryPriceIndexAt()`, in absolute terms + * between the TPI as of now and the targetTpi + * @dev 18 decimal places, 0.20e18 == $0.20. + * Used as a bound to avoid unintended/fat fingering when updating TPI */ - function maxTreasuryPriceIndexDelta() external view returns (uint256); + function maxTreasuryPriceIndexDelta() external view returns (uint96); /** - * @notice The current internal TPI data along with when it was last reset, and the prior value + * @notice The minimum time delta required for TPI to reach it's target value when + * `setTreasuryPriceIndexAt()` is called. + * @dev In seconds. + * Used as a bound to avoid unintended/fat fingering when updating TPI + */ + function minTreasuryPriceIndexTargetTimeDelta() external view returns (uint32); + + /** + * @notice The maximum absolute rate of change of TPI allowed, when + * `setTreasuryPriceIndexAt()` is called. + * @dev Units: [TPI / second] + */ + function maxAbsTreasuryPriceIndexRateOfChange() external view returns (uint96); + + /** + * @notice The current TPI state data */ function tpiData() external view returns ( - uint96 currentTpi, - uint96 previousTpi, - uint32 lastUpdatedAt, - uint32 cooldownSecs + uint96 startingTpi, + uint32 startTime, + uint96 targetTpi, + uint32 targetTime, + int96 tpiSlope ); /** - * @notice Set the Treasury Price Index (TPI) + * @notice Set the maximum allowed TPI change on any single `setTreasuryPriceIndexAt()`, in absolute terms + * between the TPI as of now and the targetTpi + * @dev 18 decimal places, 0.20e18 == $0.20 */ - function setTreasuryPriceIndex(uint96 value) external; + function setMaxTreasuryPriceIndexDelta(uint96 maxDelta) external; /** - * @notice Set the number of seconds to elapse before a new TPI will take effect. + * @notice Set the minimum time delta required for TPI to reach it's target value when + * `setTreasuryPriceIndexAt()` is called. + * @dev In seconds. */ - function setTpiCooldown(uint32 cooldownSecs) external; + function setMinTreasuryPriceIndexTargetTimeDelta(uint32 maxTargetTimeDelta) external; /** - * @notice Set the maximum allowed TPI change on any single `setTreasuryPriceIndex()`, in absolute terms. - * @dev 18 decimal places, 0.20e18 == $0.20 + * @notice Set the maximum absolute rate of change of TPI allowed, when + * `setTreasuryPriceIndexAt()` is called. + * @dev Units: [TPI / second] + */ + function setMaxAbsTreasuryPriceIndexRateOfChange(uint96 tpiDelta, uint32 timeDelta) external; + + /** + * @notice Set the target TPI which will incrementally increase from it's current value to `targetTpi` + * between now and `targetTime`. + * @dev targetTime is unixtime, targetTpi is 18 decimal places, 1.05e18 == $1.05 */ - function setMaxTreasuryPriceIndexDelta(uint256 maxDelta) external; + function setTreasuryPriceIndexAt(uint96 targetTpi, uint32 targetTime) external; /** * @notice The decimal precision of Temple Price Index (TPI) diff --git a/protocol/contracts/v2/TreasuryPriceIndexOracle.sol b/protocol/contracts/v2/TreasuryPriceIndexOracle.sol index 368b255dd..227d045c7 100644 --- a/protocol/contracts/v2/TreasuryPriceIndexOracle.sol +++ b/protocol/contracts/v2/TreasuryPriceIndexOracle.sol @@ -11,7 +11,6 @@ import { TempleElevatedAccess } from "contracts/v2/access/TempleElevatedAccess.s * @title Treasury Price Index Oracle * @notice The custom oracle (not dependant on external markets/AMMs/dependencies) to give the * Treasury Price Index, representing the target Treasury Value per token. - * This rate is updated manually with elevated permissions. The new TPI doesn't take effect until after a cooldown. */ contract TreasuryPriceIndexOracle is ITreasuryPriceIndexOracle, TempleElevatedAccess { /** @@ -21,98 +20,148 @@ contract TreasuryPriceIndexOracle is ITreasuryPriceIndexOracle, TempleElevatedAc uint256 public constant override TPI_DECIMALS = 18; struct TpiData { - /// @notice The Treasury Price Index - the target price of the Treasury, in `stableToken` terms. - uint96 currentTpi; + /// @notice The Treasury Price Index at the time `setTreasuryPriceIndexAt()` was last called + uint96 startingTpi; - /// @notice The previous TPI - used if there hasn't been enough elapsed time since the last update - uint96 previousTpi; + /// @notice The time at which TPI was last updated via `setTreasuryPriceIndexAt()` + uint32 startTime; - /// @notice The time at which TPI was last updated - uint32 lastUpdatedAt; + /// @notice The target TPI at the `targetTime` + uint96 targetTpi; - /// @notice When TPI is updated, it doesn't immediately take effect. - /// The new TPI takes effect after this cooldown has elapsed. - uint32 cooldownSecs; + /// @notice The date which the `targetTpi` will be reached. + uint32 targetTime; + + /// @notice The rate at which the `startingTpi` will change over time from `startTime` until `targetTime`. + int96 tpiSlope; } /** - * @notice The current TPI data along with when it was last reset, and the prior value + * @notice The current TPI state data */ TpiData public override tpiData; /** - * @notice The maximum allowed TPI change on any single `setTreasuryPriceIndex()`, in absolute terms. - * @dev Used as a bound to avoid unintended/fat fingering when updating TPI + * @notice The maximum allowed TPI change on any single `setTreasuryPriceIndexAt()`, in absolute terms + * between the TPI as of now and the targetTpi + * @dev 18 decimal places, 0.20e18 == $0.20. + * Used as a bound to avoid unintended/fat fingering when updating TPI + */ + uint96 public override maxTreasuryPriceIndexDelta; + + /** + * @notice The minimum time delta required for TPI to reach it's target value when + * `setTreasuryPriceIndexAt()` is called. + * @dev In seconds. + * Used as a bound to avoid unintended/fat fingering when updating TPI + */ + uint32 public override minTreasuryPriceIndexTargetTimeDelta; + + /** + * @notice The maximum absolute rate of change of TPI allowed, when + * `setTreasuryPriceIndexAt()` is called. + * @dev Units: [TPI / second] */ - uint256 public override maxTreasuryPriceIndexDelta; + uint96 public override maxAbsTreasuryPriceIndexRateOfChange; constructor( address _initialRescuer, address _initialExecutor, uint96 _initialTreasuryPriceIndex, - uint256 _maxTreasuryPriceIndexDelta, - uint32 _cooldownSecs + uint96 _maxTreasuryPriceIndexDelta, + uint32 _minTreasuryPriceIndexTargetTimeDelta, + uint96 _maxAbsTreasuryPriceIndexRateOfChange ) TempleElevatedAccess(_initialRescuer, _initialExecutor) { tpiData = TpiData({ - currentTpi: _initialTreasuryPriceIndex, - previousTpi: _initialTreasuryPriceIndex, - lastUpdatedAt: uint32(block.timestamp), - cooldownSecs: _cooldownSecs + startingTpi: _initialTreasuryPriceIndex, + startTime: uint32(block.timestamp), + targetTpi: _initialTreasuryPriceIndex, + targetTime: uint32(block.timestamp), + tpiSlope: 0 }); maxTreasuryPriceIndexDelta = _maxTreasuryPriceIndexDelta; + minTreasuryPriceIndexTargetTimeDelta = _minTreasuryPriceIndexTargetTimeDelta; + maxAbsTreasuryPriceIndexRateOfChange = _maxAbsTreasuryPriceIndexRateOfChange; } /** * @notice The current Treasury Price Index (TPI) value - * @dev If the TPI has just been updated, the old TPI will be used until `cooldownSecs` has elapsed */ function treasuryPriceIndex() public override view returns (uint96) { - return (block.timestamp < (tpiData.lastUpdatedAt + tpiData.cooldownSecs)) - ? tpiData.previousTpi // use the previous TPI if we haven't passed the cooldown yet. - : tpiData.currentTpi; // use the new TPI + uint32 _now = uint32(block.timestamp); + if (_now >= tpiData.targetTime) { + // Target date reached, no calculation required just return the target TPI + return tpiData.targetTpi; + } else { + unchecked { + int96 delta = tpiData.tpiSlope * int32(_now - tpiData.startTime); + return uint96(delta + int96(tpiData.startingTpi)); + } + } + } + + /** + * @notice Set the maximum allowed TPI change on any single `setTreasuryPriceIndexAt()`, in absolute terms + * between the TPI as of now and the targetTpi + * @dev 18 decimal places, 0.20e18 == $0.20 + */ + function setMaxTreasuryPriceIndexDelta(uint96 maxDelta) external override onlyElevatedAccess { + emit MaxTreasuryPriceIndexDeltaSet(maxDelta); + maxTreasuryPriceIndexDelta = maxDelta; } /** - * @notice Set the number of seconds to elapse before a new TPI will take effect. + * @notice Set the minimum time delta required for TPI to reach it's target value when + * `setTreasuryPriceIndexAt()` is called. + * @dev In seconds. */ - function setTpiCooldown(uint32 cooldownSecs) external override onlyElevatedAccess { - emit TpiCooldownSet(cooldownSecs); - tpiData.cooldownSecs = cooldownSecs; + function setMinTreasuryPriceIndexTargetTimeDelta(uint32 minTargetTimeDelta) external override onlyElevatedAccess { + emit MinTreasuryPriceIndexTargetTimeDeltaSet(minTargetTimeDelta); + minTreasuryPriceIndexTargetTimeDelta = minTargetTimeDelta; } /** - * @notice Set the maximum allowed TPI change on any single `setTreasuryPriceIndex()`, in absolute terms. - * @dev 18 decimal places, 0.20e18 == $0.20 + * @notice Set the maximum absolute rate of change of TPI allowed, when + * `setTreasuryPriceIndexAt()` is called. + * @dev Units: [TPI / second] */ - function setMaxTreasuryPriceIndexDelta(uint256 maxDelta) external override onlyElevatedAccess { - emit MaxTreasuryPriceIndexDeltaSet(maxDelta); - maxTreasuryPriceIndexDelta = maxDelta; + function setMaxAbsTreasuryPriceIndexRateOfChange(uint96 tpiDelta, uint32 timeDelta) external override onlyElevatedAccess { + // Calculate the rate of change, rounding down. + uint96 maxAbsRateOfChange = tpiDelta / timeDelta; + emit MaxAbsTreasuryPriceIndexRateOfChangeSet(maxAbsRateOfChange); + maxAbsTreasuryPriceIndexRateOfChange = maxAbsRateOfChange; } /** - * @notice Set the Treasury Price Index (TPI) - * @dev 18 decimal places, 1.05e18 == $1.05 + * @notice Set the target TPI which will incrementally increase from it's current value to `targetTpi` + * between now and `targetTime`. + * @dev targetTime is unixtime, targetTpi is 18 decimal places, 1.05e18 == $1.05 */ - function setTreasuryPriceIndex(uint96 value) external override onlyElevatedAccess { - // If the cooldownSecs hasn't yet passed since the last update, then this will still - // refer to the `previousTpi` value - uint96 _oldTpi = treasuryPriceIndex(); - uint96 _newTpi = value; - - unchecked { - uint256 _delta = (_newTpi > _oldTpi) ? _newTpi - _oldTpi : _oldTpi - _newTpi; - if (_delta > maxTreasuryPriceIndexDelta) revert BreachedMaxTpiDelta(_oldTpi, _newTpi, maxTreasuryPriceIndexDelta); - } + function setTreasuryPriceIndexAt(uint96 targetTpi, uint32 targetTime) external override onlyElevatedAccess { + uint96 _currentTpi = treasuryPriceIndex(); + uint32 _now = uint32(block.timestamp); + int96 _tpiDelta = int96(targetTpi) - int96(_currentTpi); - emit TreasuryPriceIndexSet(_oldTpi, _newTpi); + // targetTime must be at or after (now + minTreasuryPriceIndexTargetTimeDelta) + if (targetTime < _now + minTreasuryPriceIndexTargetTimeDelta) revert BreachedMinDateDelta(targetTime, _now, minTreasuryPriceIndexTargetTimeDelta); + uint32 _timeDelta = targetTime - _now; + + // Check absolute delta is within tolerance + uint96 _absDelta = _tpiDelta < 0 ? uint96(-1 * _tpiDelta) : uint96(_tpiDelta); + if (_absDelta > maxTreasuryPriceIndexDelta) revert BreachedMaxTpiDelta(_currentTpi, targetTpi, maxTreasuryPriceIndexDelta); + uint96 _absRateOfChange = _absDelta / _timeDelta; + if (_absRateOfChange > maxAbsTreasuryPriceIndexRateOfChange) revert BreachedMaxTpiRateOfChange(_absRateOfChange, maxAbsTreasuryPriceIndexRateOfChange); tpiData = TpiData({ - currentTpi: _newTpi, - previousTpi: _oldTpi, - lastUpdatedAt: uint32(block.timestamp), - cooldownSecs: tpiData.cooldownSecs + startingTpi: _currentTpi, + startTime: _now, + targetTpi: targetTpi, + targetTime: targetTime, + tpiSlope: _tpiDelta / int32(_timeDelta) }); + + emit TreasuryPriceIndexSetAt(_currentTpi, targetTpi, targetTime); } } \ No newline at end of file diff --git a/protocol/scripts/deploys/mainnet/deploymentArgs/0x6008C7D33bC509A6849D6cf3196F38d693d3Ae6A.js b/protocol/scripts/deploys/mainnet/deploymentArgs/0x6008C7D33bC509A6849D6cf3196F38d693d3Ae6A.js new file mode 100644 index 000000000..3d87bf654 --- /dev/null +++ b/protocol/scripts/deploys/mainnet/deploymentArgs/0x6008C7D33bC509A6849D6cf3196F38d693d3Ae6A.js @@ -0,0 +1,10 @@ +// mainnet: CORE.TREASURY_RESERVES_VAULT.TPI_ORACLE=0x6008C7D33bC509A6849D6cf3196F38d693d3Ae6A +// yarn hardhat verify --network mainnet 0x6008C7D33bC509A6849D6cf3196F38d693d3Ae6A --constructor-args scripts/deploys/mainnet/deploymentArgs/0x6008C7D33bC509A6849D6cf3196F38d693d3Ae6A.js +module.exports = [ + "0x9f90430179D9b67341BFa50559bc7B8E35629f1b", + "0x94b62A27a2f23CBdc0220826a8452fB5055cF273", + "1200000000000000000", + "1000000000000000000", + 1209600, + "115740740740" +]; \ No newline at end of file diff --git a/protocol/scripts/deploys/mainnet/v2/01-core/03-trv-tpi-oracle.ts b/protocol/scripts/deploys/mainnet/v2/01-core/03-trv-tpi-oracle.ts index 2dc8fea23..3c5cbfe87 100644 --- a/protocol/scripts/deploys/mainnet/v2/01-core/03-trv-tpi-oracle.ts +++ b/protocol/scripts/deploys/mainnet/v2/01-core/03-trv-tpi-oracle.ts @@ -12,17 +12,20 @@ async function main() { const [owner] = await ethers.getSigners(); const TEMPLE_V2_ADDRESSES = getDeployedContracts(); + const existingOracle = TreasuryPriceIndexOracle__factory.connect(TEMPLE_V2_ADDRESSES.TREASURY_RESERVES_VAULT.TPI_ORACLE, owner); + const treasuryPriceIndexOracle = new TreasuryPriceIndexOracle__factory(owner); await deployAndMine( 'CORE.TREASURY_RESERVES_VAULT.TPI_ORACLE', treasuryPriceIndexOracle, treasuryPriceIndexOracle.deploy, TEMPLE_V2_ADDRESSES.CORE.RESCUER_MSIG, - await owner.getAddress(), - ethers.utils.parseEther("1.06"), // ~1.06 TPI at deployment date - ethers.utils.parseEther("0.05"), // max treasury price index delta - 1_800 // cooldown - ) + TEMPLE_V2_ADDRESSES.CORE.EXECUTOR_MSIG, + await existingOracle.treasuryPriceIndex(), + ethers.utils.parseEther("1"), // maxTreasuryPriceIndexDelta: $1 + 14 * 86_400, // minTreasuryPriceIndexTargetTimeDelta: 2 weeks + ethers.utils.parseEther("0.01").div(86_400), // maxAbsTreasuryPriceIndexRateOfChange: 1c/day + ); } diff --git a/protocol/scripts/deploys/mainnet/v2/contract-addresses.ts b/protocol/scripts/deploys/mainnet/v2/contract-addresses.ts index 05ff316c9..b85e638e8 100644 --- a/protocol/scripts/deploys/mainnet/v2/contract-addresses.ts +++ b/protocol/scripts/deploys/mainnet/v2/contract-addresses.ts @@ -142,7 +142,7 @@ const V2_DEPLOYED_CONTRACTS: {[key: string]: ContractAddresses} = { ADDRESS: '0xf359Bae7b6AD295724e798A3Ef6Fa5109919F399', D_USD_TOKEN: '0xd018d5ecCe2Cd1c230F1719367C22DfE92c696ac', D_TEMPLE_TOKEN: '0x20aa0dCad8D08ccea01d94DaB76bde277d773Ca8', - TPI_ORACLE: '0x97e9103267D58448Bae0CF6E056F343bD7728D02', + TPI_ORACLE: '0x6008C7D33bC509A6849D6cf3196F38d693d3Ae6A', }, TEMPLE_LINE_OF_CREDIT: { ADDRESS: '0xcbc0A8d5C7352Fe3625614ea343019e6d6b89031', diff --git a/protocol/scripts/deploys/sepolia/v2/01-core/03-trv-tpi-oracle.ts b/protocol/scripts/deploys/sepolia/v2/01-core/03-trv-tpi-oracle.ts index 2dc8fea23..c6f390151 100644 --- a/protocol/scripts/deploys/sepolia/v2/01-core/03-trv-tpi-oracle.ts +++ b/protocol/scripts/deploys/sepolia/v2/01-core/03-trv-tpi-oracle.ts @@ -20,8 +20,9 @@ async function main() { TEMPLE_V2_ADDRESSES.CORE.RESCUER_MSIG, await owner.getAddress(), ethers.utils.parseEther("1.06"), // ~1.06 TPI at deployment date - ethers.utils.parseEther("0.05"), // max treasury price index delta - 1_800 // cooldown + ethers.utils.parseEther("1"), // maxTreasuryPriceIndexDelta: $1 + 14 * 86_400, // minTreasuryPriceIndexTargetTimeDelta: 2 weeks + ethers.utils.parseEther("0.01").div(86_400), // maxAbsTreasuryPriceIndexRateOfChange: 1c/day ) } diff --git a/protocol/slither.db.json b/protocol/slither.db.json index f0fa33612..d6587d1a2 100644 --- a/protocol/slither.db.json +++ b/protocol/slither.db.json @@ -1,301515 +1,41893 @@ [ - { - "elements": [ - { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19877, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - }, - { - "type": "node", - "name": "quoteToken.approve(address(balancerVault),0)", - "source_mapping": { - "start": 21130, - "length": 45, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 489 - ], - "starting_column": 17, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19877, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - } + { + "elements": [ + { + "type": "function", + "name": "borrowAndDeposit", + "source_mapping": { + "start": 7810, + "length": 246, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [195, 196, 197, 198, 199], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Ramos.addLiquidity(IBalancerVault.JoinPoolRequest) (contracts/amo/Ramos.sol#462-511) ignores return value by quoteToken.approve(address(balancerVault),0) (contracts/amo/Ramos.sol#489)\n", - "markdown": "[Ramos.addLiquidity(IBalancerVault.JoinPoolRequest)](contracts/amo/Ramos.sol#L462-L511) ignores return value by [quoteToken.approve(address(balancerVault),0)](contracts/amo/Ramos.sol#L489)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L462-L511", - "id": "1acb56caae7ee9b6838e5f5408e687213e838f292c79c37223b9cb790b0a5f6c", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "relayedSetEndorsementsFor", - "source_mapping": { - "start": 3547, - "length": 759, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ElderElection", - "source_mapping": { - "start": 906, - "length": 4629, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)" - } - }, - { - "type": "node", - "name": "(signer,err) = ECDSA.tryRecover(digest,signature)", - "source_mapping": { - "start": 3799, - "length": 79, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 120 - ], - "starting_column": 9, - "ending_column": 88 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "relayedSetEndorsementsFor", - "source_mapping": { - "start": 3547, - "length": 759, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ElderElection", - "source_mapping": { - "start": 906, - "length": 4629, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)" - } - } - } + }, + "signature": "borrowAndDeposit(uint256)" + } + }, + { + "type": "node", + "name": "treasuryReservesVault.borrow(daiToken,amount,address(this))", + "source_mapping": { + "start": 7959, + "length": 61, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [197], + "starting_column": 9, + "ending_column": 70 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowAndDeposit", + "source_mapping": { + "start": 7810, + "length": 246, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [195, 196, 197, 198, 199], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowAndDeposit(uint256)" } - ], - "description": "ElderElection.relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes) (contracts/governance/ElderElection.sol#112-129) ignores return value by (signer,err) = ECDSA.tryRecover(digest,signature) (contracts/governance/ElderElection.sol#120)\n", - "markdown": "[ElderElection.relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)](contracts/governance/ElderElection.sol#L112-L129) ignores return value by [(signer,err) = ECDSA.tryRecover(digest,signature)](contracts/governance/ElderElection.sol#L120)\n", - "first_markdown_element": "contracts/governance/ElderElection.sol#L112-L129", - "id": "9b64f931f815683d4712a17416d4cf6183b989dbcbcf6cf13a099a9bb82f7fbd", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19877, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - }, - { - "type": "node", - "name": "_tokenVault.borrowProtocolToken(protocolTokenAmount,address(this))", - "source_mapping": { - "start": 20653, - "length": 67, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 481 - ], - "starting_column": 9, - "ending_column": 76 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19877, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_tokenVault.borrowQuoteToken(quoteTokenAmount,address(this))", - "source_mapping": { - "start": 20730, - "length": 61, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 482 - ], - "starting_column": 9, - "ending_column": 70 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19877, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "protocolToken.safeIncreaseAllowance(address(balancerVault),protocolTokenAmount)", - "source_mapping": { - "start": 20871, - "length": 80, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 486 - ], - "starting_column": 13, - "ending_column": 93 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19877, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.approve(address(balancerVault),0)", - "source_mapping": { - "start": 21130, - "length": 45, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 489 - ], - "starting_column": 17, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19877, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.safeIncreaseAllowance(address(balancerVault),quoteTokenAmount)", - "source_mapping": { - "start": 21193, - "length": 74, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 490 - ], - "starting_column": 17, - "ending_column": 91 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19877, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "balancerVault.joinPool(balancerPoolId,address(this),address(this),request)", - "source_mapping": { - "start": 21410, - "length": 77, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 497 - ], - "starting_column": 13, - "ending_column": 90 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19877, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "LiquidityAdded(quoteTokenAmount,protocolTokenAmount,bptTokensStaked)", - "source_mapping": { - "start": 21686, - "length": 75, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 504 - ], - "starting_column": 9, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19877, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "_dsrDeposit(amount)", + "source_mapping": { + "start": 8030, + "length": 19, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [198], + "starting_column": 9, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowAndDeposit", + "source_mapping": { + "start": 7810, + "length": 246, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [195, 196, 197, 198, 199], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowAndDeposit(uint256)" } - ], - "description": "Reentrancy in Ramos.addLiquidity(IBalancerVault.JoinPoolRequest) (contracts/amo/Ramos.sol#462-511):\n\tExternal calls:\n\t- _tokenVault.borrowProtocolToken(protocolTokenAmount,address(this)) (contracts/amo/Ramos.sol#481)\n\t- _tokenVault.borrowQuoteToken(quoteTokenAmount,address(this)) (contracts/amo/Ramos.sol#482)\n\t- protocolToken.safeIncreaseAllowance(address(balancerVault),protocolTokenAmount) (contracts/amo/Ramos.sol#486)\n\t- quoteToken.approve(address(balancerVault),0) (contracts/amo/Ramos.sol#489)\n\t- quoteToken.safeIncreaseAllowance(address(balancerVault),quoteTokenAmount) (contracts/amo/Ramos.sol#490)\n\t- balancerVault.joinPool(balancerPoolId,address(this),address(this),request) (contracts/amo/Ramos.sol#497)\n\tEvent emitted after the call(s):\n\t- LiquidityAdded(quoteTokenAmount,protocolTokenAmount,bptTokensStaked) (contracts/amo/Ramos.sol#504)\n", - "markdown": "Reentrancy in [Ramos.addLiquidity(IBalancerVault.JoinPoolRequest)](contracts/amo/Ramos.sol#L462-L511):\n\tExternal calls:\n\t- [_tokenVault.borrowProtocolToken(protocolTokenAmount,address(this))](contracts/amo/Ramos.sol#L481)\n\t- [_tokenVault.borrowQuoteToken(quoteTokenAmount,address(this))](contracts/amo/Ramos.sol#L482)\n\t- [protocolToken.safeIncreaseAllowance(address(balancerVault),protocolTokenAmount)](contracts/amo/Ramos.sol#L486)\n\t- [quoteToken.approve(address(balancerVault),0)](contracts/amo/Ramos.sol#L489)\n\t- [quoteToken.safeIncreaseAllowance(address(balancerVault),quoteTokenAmount)](contracts/amo/Ramos.sol#L490)\n\t- [balancerVault.joinPool(balancerPoolId,address(this),address(this),request)](contracts/amo/Ramos.sol#L497)\n\tEvent emitted after the call(s):\n\t- [LiquidityAdded(quoteTokenAmount,protocolTokenAmount,bptTokensStaked)](contracts/amo/Ramos.sol#L504)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L462-L511", - "id": "091d4b185888c9ea40fc206a3a47abe3a16a55f493010202d1ea982502231085", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "depositAndStakeBptTokens", - "source_mapping": { - "start": 24025, - "length": 411, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "depositAndStakeBptTokens(uint256,bool)" - } - }, - { - "type": "node", - "name": "bptToken.safeTransferFrom(msg.sender,address(this),amount)", - "source_mapping": { - "start": 24208, - "length": 60, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 569 - ], - "starting_column": 13, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositAndStakeBptTokens", - "source_mapping": { - "start": 24025, - "length": 411, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "depositAndStakeBptTokens(uint256,bool)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "bptToken.safeTransfer(address(amoStaking),amount)", - "source_mapping": { - "start": 24288, - "length": 50, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 571 - ], - "starting_column": 9, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositAndStakeBptTokens", - "source_mapping": { - "start": 24025, - "length": 411, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "depositAndStakeBptTokens(uint256,bool)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "amoStaking.depositAndStake(amount)", - "source_mapping": { - "start": 24348, - "length": 34, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 572 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositAndStakeBptTokens", - "source_mapping": { - "start": 24025, - "length": 411, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "depositAndStakeBptTokens(uint256,bool)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "DepositAndStakeBptTokens(amount)", - "source_mapping": { - "start": 24392, - "length": 37, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 573 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositAndStakeBptTokens", - "source_mapping": { - "start": 24025, - "length": 411, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "depositAndStakeBptTokens(uint256,bool)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "chi = pot.drip()", + "source_mapping": { + "start": 5567, + "length": 60, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [142], + "starting_column": 9, + "ending_column": 69 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_checkpointChi", + "source_mapping": { + "start": 5446, + "length": 188, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [140, 141, 142, 143], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_checkpointChi()" } - ], - "description": "Reentrancy in Ramos.depositAndStakeBptTokens(uint256,bool) (contracts/amo/Ramos.sol#564-574):\n\tExternal calls:\n\t- bptToken.safeTransferFrom(msg.sender,address(this),amount) (contracts/amo/Ramos.sol#569)\n\t- bptToken.safeTransfer(address(amoStaking),amount) (contracts/amo/Ramos.sol#571)\n\t- amoStaking.depositAndStake(amount) (contracts/amo/Ramos.sol#572)\n\tEvent emitted after the call(s):\n\t- DepositAndStakeBptTokens(amount) (contracts/amo/Ramos.sol#573)\n", - "markdown": "Reentrancy in [Ramos.depositAndStakeBptTokens(uint256,bool)](contracts/amo/Ramos.sol#L564-L574):\n\tExternal calls:\n\t- [bptToken.safeTransferFrom(msg.sender,address(this),amount)](contracts/amo/Ramos.sol#L569)\n\t- [bptToken.safeTransfer(address(amoStaking),amount)](contracts/amo/Ramos.sol#L571)\n\t- [amoStaking.depositAndStake(amount)](contracts/amo/Ramos.sol#L572)\n\tEvent emitted after the call(s):\n\t- [DepositAndStakeBptTokens(amount)](contracts/amo/Ramos.sol#L573)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L564-L574", - "id": "a7249c20cc127d6173fc40d9683538ced29502e2d3e8095440a2939d5dddf5d0", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "rebalanceDownExit", - "source_mapping": { - "start": 13776, - "length": 1330, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownExit(uint256,uint256)" - } - }, - { - "type": "node", - "name": "amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper))", - "source_mapping": { - "start": 14207, - "length": 70, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 341 - ], - "starting_column": 9, - "ending_column": 79 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownExit", - "source_mapping": { - "start": 13776, - "length": 1330, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minQuoteTokenAmountOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,treasuryPriceIndex(),quoteToken)", - "source_mapping": { - "start": 14327, - "length": 266, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 344, - 345, - 346, - 347 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownExit", - "source_mapping": { - "start": 13776, - "length": 1330, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.safeTransfer(feeCollector,feeAmt)", - "source_mapping": { - "start": 14786, - "length": 45, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 352 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownExit", - "source_mapping": { - "start": 13776, - "length": 1330, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RebalanceDownExit(bptAmountIn,quoteTokenAmountOut,feeAmt)", - "source_mapping": { - "start": 14925, - "length": 64, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 358 - ], - "starting_column": 9, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownExit", - "source_mapping": { - "start": 13776, - "length": 1330, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "daiJoin.join(address(this),amount)", + "source_mapping": { + "start": 8343, + "length": 35, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [207], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrDeposit", + "source_mapping": { + "start": 8062, + "length": 349, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrDeposit(uint256)" } - ], - "description": "Reentrancy in Ramos.rebalanceDownExit(uint256,uint256) (contracts/amo/Ramos.sol#332-362):\n\tExternal calls:\n\t- amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper)) (contracts/amo/Ramos.sol#341)\n\t- quoteTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minQuoteTokenAmountOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,treasuryPriceIndex(),quoteToken) (contracts/amo/Ramos.sol#344-347)\n\t- quoteToken.safeTransfer(feeCollector,feeAmt) (contracts/amo/Ramos.sol#352)\n\tEvent emitted after the call(s):\n\t- RebalanceDownExit(bptAmountIn,quoteTokenAmountOut,feeAmt) (contracts/amo/Ramos.sol#358)\n", - "markdown": "Reentrancy in [Ramos.rebalanceDownExit(uint256,uint256)](contracts/amo/Ramos.sol#L332-L362):\n\tExternal calls:\n\t- [amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper))](contracts/amo/Ramos.sol#L341)\n\t- [quoteTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minQuoteTokenAmountOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,treasuryPriceIndex(),quoteToken)](contracts/amo/Ramos.sol#L344-L347)\n\t- [quoteToken.safeTransfer(feeCollector,feeAmt)](contracts/amo/Ramos.sol#L352)\n\tEvent emitted after the call(s):\n\t- [RebalanceDownExit(bptAmountIn,quoteTokenAmountOut,feeAmt)](contracts/amo/Ramos.sol#L358)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L332-L362", - "id": "86a53e330fffe167ad16fe5543549acebea2b6d799ac824c06d7b5f50d6c38da", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "rebalanceDownJoin", - "source_mapping": { - "start": 17948, - "length": 1545, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownJoin(uint256,uint256)" - } - }, - { - "type": "node", - "name": "tokenVault.borrowProtocolToken(protocolTokenAmountIn,address(this))", - "source_mapping": { - "start": 18312, - "length": 68, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 427 - ], - "starting_column": 9, - "ending_column": 77 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownJoin", - "source_mapping": { - "start": 17948, - "length": 1545, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "protocolToken.safeTransfer(feeCollector,feeAmt)", - "source_mapping": { - "start": 18586, - "length": 48, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 432 - ], - "starting_column": 13, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownJoin", - "source_mapping": { - "start": 17948, - "length": 1545, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "protocolToken.safeTransfer(address(_poolHelper),joinAmountIn)", - "source_mapping": { - "start": 18818, - "length": 62, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 438 - ], - "starting_column": 9, - "ending_column": 71 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownJoin", - "source_mapping": { - "start": 17948, - "length": 1545, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,protocolTokenBalancerPoolIndex,protocolToken)", - "source_mapping": { - "start": 18933, - "length": 264, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 441, - 442, - 443, - 444, - 445 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownJoin", - "source_mapping": { - "start": 17948, - "length": 1545, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RebalanceDownJoin(protocolTokenAmountIn,bptTokensStaked,feeAmt)", - "source_mapping": { - "start": 19207, - "length": 70, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 446 - ], - "starting_column": 9, - "ending_column": 79 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownJoin", - "source_mapping": { - "start": 17948, - "length": 1545, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "pot.join(shares)", + "source_mapping": { + "start": 8388, + "length": 16, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [208], + "starting_column": 9, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrDeposit", + "source_mapping": { + "start": 8062, + "length": 349, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrDeposit(uint256)" } - ], - "description": "Reentrancy in Ramos.rebalanceDownJoin(uint256,uint256) (contracts/amo/Ramos.sol#419-453):\n\tExternal calls:\n\t- tokenVault.borrowProtocolToken(protocolTokenAmountIn,address(this)) (contracts/amo/Ramos.sol#427)\n\t- protocolToken.safeTransfer(feeCollector,feeAmt) (contracts/amo/Ramos.sol#432)\n\t- protocolToken.safeTransfer(address(_poolHelper),joinAmountIn) (contracts/amo/Ramos.sol#438)\n\t- bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,protocolTokenBalancerPoolIndex,protocolToken) (contracts/amo/Ramos.sol#441-445)\n\tEvent emitted after the call(s):\n\t- RebalanceDownJoin(protocolTokenAmountIn,bptTokensStaked,feeAmt) (contracts/amo/Ramos.sol#446)\n", - "markdown": "Reentrancy in [Ramos.rebalanceDownJoin(uint256,uint256)](contracts/amo/Ramos.sol#L419-L453):\n\tExternal calls:\n\t- [tokenVault.borrowProtocolToken(protocolTokenAmountIn,address(this))](contracts/amo/Ramos.sol#L427)\n\t- [protocolToken.safeTransfer(feeCollector,feeAmt)](contracts/amo/Ramos.sol#L432)\n\t- [protocolToken.safeTransfer(address(_poolHelper),joinAmountIn)](contracts/amo/Ramos.sol#L438)\n\t- [bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,protocolTokenBalancerPoolIndex,protocolToken)](contracts/amo/Ramos.sol#L441-L445)\n\tEvent emitted after the call(s):\n\t- [RebalanceDownJoin(protocolTokenAmountIn,bptTokensStaked,feeAmt)](contracts/amo/Ramos.sol#L446)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L419-L453", - "id": "cf17a4ee1ba6b6f324d63d28f3c7859bb03f334538e78ac2daf4f5d9278251dd", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "rebalanceUpExit", - "source_mapping": { - "start": 11723, - "length": 1435, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpExit(uint256,uint256)" - } - }, - { - "type": "node", - "name": "amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper))", - "source_mapping": { - "start": 12146, - "length": 70, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 297 - ], - "starting_column": 9, - "ending_column": 79 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpExit", - "source_mapping": { - "start": 11723, - "length": 1435, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "protocolTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minProtocolTokenOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,protocolTokenBalancerPoolIndex,treasuryPriceIndex(),protocolToken)", - "source_mapping": { - "start": 12273, - "length": 279, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 300, - 301, - 302, - 303, - 304 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpExit", - "source_mapping": { - "start": 11723, - "length": 1435, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "protocolToken.safeTransfer(feeCollector,feeAmt)", - "source_mapping": { - "start": 12751, - "length": 48, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 309 - ], - "starting_column": 13, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpExit", - "source_mapping": { - "start": 11723, - "length": 1435, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RebalanceUpExit(bptAmountIn,protocolTokenAmountOut,feeAmt)", - "source_mapping": { - "start": 12967, - "length": 65, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 316 - ], - "starting_column": 9, - "ending_column": 74 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpExit", - "source_mapping": { - "start": 11723, - "length": 1435, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "DaiDeposited(amount)", + "source_mapping": { + "start": 8308, + "length": 25, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [206], + "starting_column": 9, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrDeposit", + "source_mapping": { + "start": 8062, + "length": 349, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrDeposit(uint256)" } - ], - "description": "Reentrancy in Ramos.rebalanceUpExit(uint256,uint256) (contracts/amo/Ramos.sol#288-320):\n\tExternal calls:\n\t- amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper)) (contracts/amo/Ramos.sol#297)\n\t- protocolTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minProtocolTokenOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,protocolTokenBalancerPoolIndex,treasuryPriceIndex(),protocolToken) (contracts/amo/Ramos.sol#300-304)\n\t- protocolToken.safeTransfer(feeCollector,feeAmt) (contracts/amo/Ramos.sol#309)\n\tEvent emitted after the call(s):\n\t- RebalanceUpExit(bptAmountIn,protocolTokenAmountOut,feeAmt) (contracts/amo/Ramos.sol#316)\n", - "markdown": "Reentrancy in [Ramos.rebalanceUpExit(uint256,uint256)](contracts/amo/Ramos.sol#L288-L320):\n\tExternal calls:\n\t- [amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper))](contracts/amo/Ramos.sol#L297)\n\t- [protocolTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minProtocolTokenOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,protocolTokenBalancerPoolIndex,treasuryPriceIndex(),protocolToken)](contracts/amo/Ramos.sol#L300-L304)\n\t- [protocolToken.safeTransfer(feeCollector,feeAmt)](contracts/amo/Ramos.sol#L309)\n\tEvent emitted after the call(s):\n\t- [RebalanceUpExit(bptAmountIn,protocolTokenAmountOut,feeAmt)](contracts/amo/Ramos.sol#L316)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L288-L320", - "id": "f01702004594863e23f38f398fde5ec3a792ca5c4b26bd0a6b93e8dc1846cabf", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "rebalanceUpJoin", - "source_mapping": { - "start": 15773, - "length": 1496, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpJoin(uint256,uint256)" - } - }, - { - "type": "node", - "name": "tokenVault.borrowQuoteToken(quoteTokenAmountIn,address(this))", - "source_mapping": { - "start": 16123, - "length": 62, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 382 - ], - "starting_column": 9, - "ending_column": 71 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpJoin", - "source_mapping": { - "start": 15773, - "length": 1496, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.safeTransfer(feeCollector,feeAmt)", - "source_mapping": { - "start": 16378, - "length": 45, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 387 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpJoin", - "source_mapping": { - "start": 15773, - "length": 1496, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.safeTransfer(address(_poolHelper),joinAmountIn)", - "source_mapping": { - "start": 16619, - "length": 59, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 393 - ], - "starting_column": 9, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpJoin", - "source_mapping": { - "start": 15773, - "length": 1496, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,quoteToken)", - "source_mapping": { - "start": 16728, - "length": 250, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 396, - 397, - 398, - 399 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpJoin", - "source_mapping": { - "start": 15773, - "length": 1496, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RebalanceUpJoin(quoteTokenAmountIn,bptTokensStaked,feeAmt)", - "source_mapping": { - "start": 16988, - "length": 65, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 400 - ], - "starting_column": 9, - "ending_column": 74 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpJoin", - "source_mapping": { - "start": 15773, - "length": 1496, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + }, + { + "type": "node", + "name": "_dsrDeposit(amount)", + "source_mapping": { + "start": 8030, + "length": 19, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [198], + "starting_column": 9, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowAndDeposit", + "source_mapping": { + "start": 7810, + "length": 246, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [195, 196, 197, 198, 199], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowAndDeposit(uint256)" } - ], - "description": "Reentrancy in Ramos.rebalanceUpJoin(uint256,uint256) (contracts/amo/Ramos.sol#374-407):\n\tExternal calls:\n\t- tokenVault.borrowQuoteToken(quoteTokenAmountIn,address(this)) (contracts/amo/Ramos.sol#382)\n\t- quoteToken.safeTransfer(feeCollector,feeAmt) (contracts/amo/Ramos.sol#387)\n\t- quoteToken.safeTransfer(address(_poolHelper),joinAmountIn) (contracts/amo/Ramos.sol#393)\n\t- bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,quoteToken) (contracts/amo/Ramos.sol#396-399)\n\tEvent emitted after the call(s):\n\t- RebalanceUpJoin(quoteTokenAmountIn,bptTokensStaked,feeAmt) (contracts/amo/Ramos.sol#400)\n", - "markdown": "Reentrancy in [Ramos.rebalanceUpJoin(uint256,uint256)](contracts/amo/Ramos.sol#L374-L407):\n\tExternal calls:\n\t- [tokenVault.borrowQuoteToken(quoteTokenAmountIn,address(this))](contracts/amo/Ramos.sol#L382)\n\t- [quoteToken.safeTransfer(feeCollector,feeAmt)](contracts/amo/Ramos.sol#L387)\n\t- [quoteToken.safeTransfer(address(_poolHelper),joinAmountIn)](contracts/amo/Ramos.sol#L393)\n\t- [bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,quoteToken)](contracts/amo/Ramos.sol#L396-L399)\n\tEvent emitted after the call(s):\n\t- [RebalanceUpJoin(quoteTokenAmountIn,bptTokensStaked,feeAmt)](contracts/amo/Ramos.sol#L400)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L374-L407", - "id": "d452854a083064df7259f0954835ef242ab535df19218e9bf3aaf9b81c9b26c1", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "recoverToken", - "source_mapping": { - "start": 10888, - "length": 197, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 272, - 273, - 274, - 275, - 276 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "recoverToken(address,address,uint256)" - } - }, - { - "type": "node", - "name": "IERC20(token).safeTransfer(to,amount)", - "source_mapping": { - "start": 10991, - "length": 38, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 273 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "recoverToken", - "source_mapping": { - "start": 10888, - "length": 197, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 272, - 273, - 274, - 275, - 276 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "recoverToken(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RecoveredToken(token,to,amount)", - "source_mapping": { - "start": 11040, - "length": 38, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 275 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "recoverToken", - "source_mapping": { - "start": 10888, - "length": 197, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 272, - 273, - 274, - 275, - 276 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "recoverToken(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in DsrBaseStrategy.borrowAndDeposit(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#195-199):\n\tExternal calls:\n\t- treasuryReservesVault.borrow(daiToken,amount,address(this)) (contracts/v2/strategies/DsrBaseStrategy.sol#197)\n\t- _dsrDeposit(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#198)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\t\t- daiJoin.join(address(this),amount) (contracts/v2/strategies/DsrBaseStrategy.sol#207)\n\t\t- pot.join(shares) (contracts/v2/strategies/DsrBaseStrategy.sol#208)\n\tEvent emitted after the call(s):\n\t- DaiDeposited(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#206)\n\t\t- _dsrDeposit(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#198)\n", + "markdown": "Reentrancy in [DsrBaseStrategy.borrowAndDeposit(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L195-L199):\n\tExternal calls:\n\t- [treasuryReservesVault.borrow(daiToken,amount,address(this))](contracts/v2/strategies/DsrBaseStrategy.sol#L197)\n\t- [_dsrDeposit(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L198)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\t\t- [daiJoin.join(address(this),amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L207)\n\t\t- [pot.join(shares)](contracts/v2/strategies/DsrBaseStrategy.sol#L208)\n\tEvent emitted after the call(s):\n\t- [DaiDeposited(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L206)\n\t\t- [_dsrDeposit(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L198)\n", + "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L195-L199", + "id": "fa02cb67c0fadd634b5b58c828b6c896bd82d9eafb17365664e0ed1810997c50", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_swap", + "source_mapping": { + "start": 13925, + "length": 768, + "filename_relative": "contracts/core/MultiOtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/MultiOtcOffer.sol", + "filename_short": "contracts/core/MultiOtcOffer.sol", + "is_dependency": false, + "lines": [296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "MultiOtcOffer", + "source_mapping": { + "start": 1160, + "length": 13535, + "filename_relative": "contracts/core/MultiOtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/MultiOtcOffer.sol", + "filename_short": "contracts/core/MultiOtcOffer.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in Ramos.recoverToken(address,address,uint256) (contracts/amo/Ramos.sol#272-276):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(to,amount) (contracts/amo/Ramos.sol#273)\n\tEvent emitted after the call(s):\n\t- RecoveredToken(token,to,amount) (contracts/amo/Ramos.sol#275)\n", - "markdown": "Reentrancy in [Ramos.recoverToken(address,address,uint256)](contracts/amo/Ramos.sol#L272-L276):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(to,amount)](contracts/amo/Ramos.sol#L273)\n\tEvent emitted after the call(s):\n\t- [RecoveredToken(token,to,amount)](contracts/amo/Ramos.sol#L275)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L272-L276", - "id": "15a59117d9f24ee76b20d5a5453f589570a7f156b421e560b9305927c9131e2c", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 22407, - "length": 1408, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - }, - { - "type": "node", - "name": "amoStaking.withdrawAndUnwrap(bptIn,false,address(this))", - "source_mapping": { - "start": 23088, - "length": 57, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 539 - ], - "starting_column": 9, - "ending_column": 66 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 22407, - "length": 1408, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "balancerVault.exitPool(balancerPoolId,address(this),address(this),request)", - "source_mapping": { - "start": 23155, - "length": 77, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 540 - ], - "starting_column": 9, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 22407, - "length": 1408, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_tokenVault.repayProtocolToken(protocolTokenAmount)", - "source_mapping": { - "start": 23563, - "length": 51, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 549 - ], - "starting_column": 13, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 22407, - "length": 1408, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_tokenVault.repayQuoteToken(quoteTokenAmount)", - "source_mapping": { - "start": 23675, - "length": 45, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 553 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 22407, - "length": 1408, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "LiquidityRemoved(quoteTokenAmount,protocolTokenAmount,bptIn)", - "source_mapping": { - "start": 23741, - "length": 67, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 556 - ], - "starting_column": 9, - "ending_column": 76 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 22407, - "length": 1408, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24208, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "_swap(bytes32,uint256)" + } + }, + { + "type": "node", + "name": "_userBuyToken.safeTransferFrom(_fundsOwner,msg.sender,buyTokenAmount)", + "source_mapping": { + "start": 14615, + "length": 71, + "filename_relative": "contracts/core/MultiOtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/MultiOtcOffer.sol", + "filename_short": "contracts/core/MultiOtcOffer.sol", + "is_dependency": false, + "lines": [306], + "starting_column": 9, + "ending_column": 80 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_swap", + "source_mapping": { + "start": 13925, + "length": 768, + "filename_relative": "contracts/core/MultiOtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/MultiOtcOffer.sol", + "filename_short": "contracts/core/MultiOtcOffer.sol", + "is_dependency": false, + "lines": [ + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "MultiOtcOffer", + "source_mapping": { + "start": 1160, + "length": 13535, + "filename_relative": "contracts/core/MultiOtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/MultiOtcOffer.sol", + "filename_short": "contracts/core/MultiOtcOffer.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_swap(bytes32,uint256)" } - ], - "description": "Reentrancy in Ramos.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256) (contracts/amo/Ramos.sol#520-557):\n\tExternal calls:\n\t- amoStaking.withdrawAndUnwrap(bptIn,false,address(this)) (contracts/amo/Ramos.sol#539)\n\t- balancerVault.exitPool(balancerPoolId,address(this),address(this),request) (contracts/amo/Ramos.sol#540)\n\t- _tokenVault.repayProtocolToken(protocolTokenAmount) (contracts/amo/Ramos.sol#549)\n\t- _tokenVault.repayQuoteToken(quoteTokenAmount) (contracts/amo/Ramos.sol#553)\n\tEvent emitted after the call(s):\n\t- LiquidityRemoved(quoteTokenAmount,protocolTokenAmount,bptIn) (contracts/amo/Ramos.sol#556)\n", - "markdown": "Reentrancy in [Ramos.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)](contracts/amo/Ramos.sol#L520-L557):\n\tExternal calls:\n\t- [amoStaking.withdrawAndUnwrap(bptIn,false,address(this))](contracts/amo/Ramos.sol#L539)\n\t- [balancerVault.exitPool(balancerPoolId,address(this),address(this),request)](contracts/amo/Ramos.sol#L540)\n\t- [_tokenVault.repayProtocolToken(protocolTokenAmount)](contracts/amo/Ramos.sol#L549)\n\t- [_tokenVault.repayQuoteToken(quoteTokenAmount)](contracts/amo/Ramos.sol#L553)\n\tEvent emitted after the call(s):\n\t- [LiquidityRemoved(quoteTokenAmount,protocolTokenAmount,bptIn)](contracts/amo/Ramos.sol#L556)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L520-L557", - "id": "58971ea68a44f13c3035e5c40470aed4ee35ec8780baec9e6fde35f1a56bae22", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 819, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31697, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - }, - { - "type": "node", - "name": "daiToken.approve(previousTrv,0)", - "source_mapping": { - "start": 16002, - "length": 32, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 394 - ], - "starting_column": 13, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 819, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31697, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "daiToken.forceApprove(_trv,type()(uint256).max)", - "source_mapping": { - "start": 16245, - "length": 46, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 402 - ], - "starting_column": 13, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 819, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31697, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "TlcStrategySet(newTlcStrategy,_trv)", - "source_mapping": { - "start": 16312, - "length": 41, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 405 - ], - "starting_column": 9, - "ending_column": 50 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 819, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31697, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + } + } + ], + "description": "MultiOtcOffer._swap(bytes32,uint256) (contracts/core/MultiOtcOffer.sol#296-307) uses arbitrary from in transferFrom: _userBuyToken.safeTransferFrom(_fundsOwner,msg.sender,buyTokenAmount) (contracts/core/MultiOtcOffer.sol#306)\n", + "markdown": "[MultiOtcOffer._swap(bytes32,uint256)](contracts/core/MultiOtcOffer.sol#L296-L307) uses arbitrary from in transferFrom: [_userBuyToken.safeTransferFrom(_fundsOwner,msg.sender,buyTokenAmount)](contracts/core/MultiOtcOffer.sol#L306)\n", + "first_markdown_element": "contracts/core/MultiOtcOffer.sol#L296-L307", + "id": "5fcc674f3a64b4a8a632801f25795f7fc58332f3a16f9dbb5c2653279f239534", + "check": "arbitrary-send-erc20", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 5782, + "length": 517, + "filename_relative": "contracts/core/OtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OtcOffer.sol", + "filename_short": "contracts/core/OtcOffer.sol", + "is_dependency": false, + "lines": [131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OtcOffer", + "source_mapping": { + "start": 844, + "length": 6488, + "filename_relative": "contracts/core/OtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OtcOffer.sol", + "filename_short": "contracts/core/OtcOffer.sol", + "is_dependency": false, + "lines": [ + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Reentrancy in TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-409):\n\tExternal calls:\n\t- daiToken.approve(previousTrv,0) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#394)\n\t- daiToken.forceApprove(_trv,type()(uint256).max) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#402)\n\tEvent emitted after the call(s):\n\t- TlcStrategySet(newTlcStrategy,_trv) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#405)\n", - "markdown": "Reentrancy in [TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L409):\n\tExternal calls:\n\t- [daiToken.approve(previousTrv,0)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)\n\t- [daiToken.forceApprove(_trv,type()(uint256).max)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L402)\n\tEvent emitted after the call(s):\n\t- [TlcStrategySet(newTlcStrategy,_trv)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L405)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L409", - "id": "c39c59a77f1824a150880b6907c47e451f7784419c1b3eab509e104e0a7eba72", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "relayedSetEndorsementsFor", - "source_mapping": { - "start": 3547, - "length": 759, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ElderElection", - "source_mapping": { - "start": 906, - "length": 4629, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)" - } - }, - { - "type": "node", - "name": "block.timestamp > req.deadline", - "source_mapping": { - "start": 4001, - "length": 30, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 124 - ], - "starting_column": 13, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "relayedSetEndorsementsFor", - "source_mapping": { - "start": 3547, - "length": 759, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ElderElection", - "source_mapping": { - "start": 906, - "length": 4629, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)" - } - } - } + }, + "signature": "swap(uint256)" + } + }, + { + "type": "node", + "name": "userBuyToken.safeTransferFrom(_fundsOwner,msg.sender,buyTokenAmount)", + "source_mapping": { + "start": 6222, + "length": 70, + "filename_relative": "contracts/core/OtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OtcOffer.sol", + "filename_short": "contracts/core/OtcOffer.sol", + "is_dependency": false, + "lines": [140], + "starting_column": 9, + "ending_column": 79 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 5782, + "length": 517, + "filename_relative": "contracts/core/OtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OtcOffer.sol", + "filename_short": "contracts/core/OtcOffer.sol", + "is_dependency": false, + "lines": [131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OtcOffer", + "source_mapping": { + "start": 844, + "length": 6488, + "filename_relative": "contracts/core/OtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OtcOffer.sol", + "filename_short": "contracts/core/OtcOffer.sol", + "is_dependency": false, + "lines": [ + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "swap(uint256)" } - ], - "description": "ElderElection.relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes) (contracts/governance/ElderElection.sol#112-129) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > req.deadline (contracts/governance/ElderElection.sol#124)\n", - "markdown": "[ElderElection.relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)](contracts/governance/ElderElection.sol#L112-L129) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > req.deadline](contracts/governance/ElderElection.sol#L124)\n", - "first_markdown_element": "contracts/governance/ElderElection.sol#L112-L129", - "id": "4f2e3008715f5b7ded6a3edbca5b15d9bd701fe712b26dc0b8f0cf235e35a1ef", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_initDebtTokenCache", - "source_mapping": { - "start": 24203, - "length": 1450, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31697, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_initDebtTokenCache(TempleLineOfCredit.DebtTokenCache)" - } - }, - { - "type": "node", - "name": "_timeElapsed > 0", - "source_mapping": { - "start": 25065, - "length": 16, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 640 - ], - "starting_column": 13, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_initDebtTokenCache", - "source_mapping": { - "start": 24203, - "length": 1450, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31697, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_initDebtTokenCache(TempleLineOfCredit.DebtTokenCache)" - } - } - } + } + } + } + ], + "description": "OtcOffer.swap(uint256) (contracts/core/OtcOffer.sol#131-141) uses arbitrary from in transferFrom: userBuyToken.safeTransferFrom(_fundsOwner,msg.sender,buyTokenAmount) (contracts/core/OtcOffer.sol#140)\n", + "markdown": "[OtcOffer.swap(uint256)](contracts/core/OtcOffer.sol#L131-L141) uses arbitrary from in transferFrom: [userBuyToken.safeTransferFrom(_fundsOwner,msg.sender,buyTokenAmount)](contracts/core/OtcOffer.sol#L140)\n", + "first_markdown_element": "contracts/core/OtcOffer.sol#L131-L141", + "id": "05d3d20016db7bcfcaa4746897ba0c55c97e64e9bbf77842db5d2e2d9ceae5fd", + "check": "arbitrary-send-erc20", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TempleLineOfCredit._initDebtTokenCache(TempleLineOfCredit.DebtTokenCache) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#618-657) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _timeElapsed > 0 (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#640)\n", - "markdown": "[TempleLineOfCredit._initDebtTokenCache(TempleLineOfCredit.DebtTokenCache)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L618-L657) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_timeElapsed > 0](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L640)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L618-L657", - "id": "195556f3bab1a462672097b00cd1340a45349779f22a9600cb865337be81d49e", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7866, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 196, - 197, - 198, - 199, - 200 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - }, - { - "type": "node", - "name": "treasuryReservesVault.borrow(daiToken,amount,address(this))", - "source_mapping": { - "start": 8015, - "length": 61, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 198 - ], - "starting_column": 9, - "ending_column": 70 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7866, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 196, - 197, - 198, - 199, - 200 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_dsrDeposit(amount)", - "source_mapping": { - "start": 8086, - "length": 19, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 199 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7866, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 196, - 197, - 198, - 199, - 200 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "daiJoin.join(address(this),amount)", - "source_mapping": { - "start": 8399, - "length": 35, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 208 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8118, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5623, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5502, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "pot.join(shares)", - "source_mapping": { - "start": 8444, - "length": 16, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 209 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8118, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiDeposited(amount)", - "source_mapping": { - "start": 8364, - "length": 25, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 207 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8118, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_dsrDeposit(amount)", - "source_mapping": { - "start": 8086, - "length": 19, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 199 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7866, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 196, - 197, - 198, - 199, - 200 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" + } + }, + { + "type": "node", + "name": "blockTimestamp = uint32(block.timestamp % 2 ** 32)", + "source_mapping": { + "start": 3302, + "length": 55, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [82], + "starting_column": 9, + "ending_column": 64 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" } - ], - "description": "Reentrancy in DsrBaseStrategy.borrowAndDeposit(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#196-200):\n\tExternal calls:\n\t- treasuryReservesVault.borrow(daiToken,amount,address(this)) (contracts/v2/strategies/DsrBaseStrategy.sol#198)\n\t- _dsrDeposit(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#199)\n\t\t- daiJoin.join(address(this),amount) (contracts/v2/strategies/DsrBaseStrategy.sol#208)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#143)\n\t\t- pot.join(shares) (contracts/v2/strategies/DsrBaseStrategy.sol#209)\n\tEvent emitted after the call(s):\n\t- DaiDeposited(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#207)\n\t\t- _dsrDeposit(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#199)\n", - "markdown": "Reentrancy in [DsrBaseStrategy.borrowAndDeposit(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L196-L200):\n\tExternal calls:\n\t- [treasuryReservesVault.borrow(daiToken,amount,address(this))](contracts/v2/strategies/DsrBaseStrategy.sol#L198)\n\t- [_dsrDeposit(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L199)\n\t\t- [daiJoin.join(address(this),amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L208)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L143)\n\t\t- [pot.join(shares)](contracts/v2/strategies/DsrBaseStrategy.sol#L209)\n\tEvent emitted after the call(s):\n\t- [DaiDeposited(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L207)\n\t\t- [_dsrDeposit(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L199)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L196-L200", - "id": "2ee7f532bcd998657414bedd1a8c0e1884efa2ba7d4a4d28e8332abdc305b488", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5308, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - }, - { - "type": "node", - "name": "cycleNumber = (block.timestamp - firstPeriodStartTimestamp) / periodDuration", - "source_mapping": { - "start": 5646, - "length": 76, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 142 - ], - "starting_column": 9, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5308, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - } - } - }, - { - "type": "node", - "name": "inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp", - "source_mapping": { - "start": 5732, - "length": 138, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 9, - "ending_column": 147 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5308, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - } - } + } + } + } + ], + "description": "TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93) uses a weak PRNG: \"blockTimestamp = uint32(block.timestamp % 2 ** 32) (contracts/amm/TempleUniswapV2Pair.sol#82)\" \n", + "markdown": "[TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93) uses a weak PRNG: \"[blockTimestamp = uint32(block.timestamp % 2 ** 32)](contracts/amm/TempleUniswapV2Pair.sol#L82)\" \n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L80-L93", + "id": "290357789cffd43bf264062cb5a528e9a368f77182c65ce7dcfbd4feb9020833", + "check": "weak-prng", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "calc", + "source_mapping": { + "start": 856, + "length": 613, + "filename_relative": "contracts/core/JoiningFee.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/JoiningFee.sol", + "filename_short": "contracts/core/JoiningFee.sol", + "is_dependency": false, + "lines": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "JoiningFee", + "source_mapping": { + "start": 461, + "length": 1365, + "filename_relative": "contracts/core/JoiningFee.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/JoiningFee.sol", + "filename_short": "contracts/core/JoiningFee.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Vault.inEnterExitWindow() (contracts/core/Vault.sol#136-144) performs a multiplication on the result of a division:\n\t- cycleNumber = (block.timestamp - firstPeriodStartTimestamp) / periodDuration (contracts/core/Vault.sol#142)\n\t- inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp (contracts/core/Vault.sol#143)\n", - "markdown": "[Vault.inEnterExitWindow()](contracts/core/Vault.sol#L136-L144) performs a multiplication on the result of a division:\n\t- [cycleNumber = (block.timestamp - firstPeriodStartTimestamp) / periodDuration](contracts/core/Vault.sol#L142)\n\t- [inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp](contracts/core/Vault.sol#L143)\n", - "first_markdown_element": "contracts/core/Vault.sol#L136-L144", - "id": "8c7714b71ec341b6d2099880abd107a6f2fea28b8e3eacb52ca0a2b093c07ec7", - "check": "divide-before-multiply", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "amountPerShare", - "source_mapping": { - "start": 4930, - "length": 372, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "amountPerShare()" - } - }, - { - "type": "node", - "name": "p == 0", - "source_mapping": { - "start": 5206, - "length": 6, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 127 - ], - "starting_column": 13, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "amountPerShare", - "source_mapping": { - "start": 4930, - "length": 372, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "amountPerShare()" - } - } - } + }, + "signature": "calc(uint256,uint256,address)" + } + }, + { + "type": "node", + "name": "(block.timestamp - (numCycles * periodDuration) - firstPeriodStartTimestamp) / 3600 * feePerHour", + "source_mapping": { + "start": 1359, + "length": 103, + "filename_relative": "contracts/core/JoiningFee.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/JoiningFee.sol", + "filename_short": "contracts/core/JoiningFee.sol", + "is_dependency": false, + "lines": [38], + "starting_column": 9, + "ending_column": 112 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "calc", + "source_mapping": { + "start": 856, + "length": 613, + "filename_relative": "contracts/core/JoiningFee.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/JoiningFee.sol", + "filename_short": "contracts/core/JoiningFee.sol", + "is_dependency": false, + "lines": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "JoiningFee", + "source_mapping": { + "start": 461, + "length": 1365, + "filename_relative": "contracts/core/JoiningFee.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/JoiningFee.sol", + "filename_short": "contracts/core/JoiningFee.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "calc(uint256,uint256,address)" } - ], - "description": "Vault.amountPerShare() (contracts/core/Vault.sol#121-134) uses a dangerous strict equality:\n\t- p == 0 (contracts/core/Vault.sol#127)\n", - "markdown": "[Vault.amountPerShare()](contracts/core/Vault.sol#L121-L134) uses a dangerous strict equality:\n\t- [p == 0](contracts/core/Vault.sol#L127)\n", - "first_markdown_element": "contracts/core/Vault.sol#L121-L134", - "id": "de749cfce8ce80cfe760160d413ea1c1c688ac04215e9656e646ee64ebe27c1c", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "_vaultedTempleAccount", - "source_mapping": { - "start": 2726, - "length": 29, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 2577, - "length": 838, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)" - } - } - } - }, - { - "type": "node", - "name": "vaultedTempleAccount = _vaultedTempleAccount", - "source_mapping": { - "start": 3116, - "length": 44, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 74 - ], - "starting_column": 9, - "ending_column": 53 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 2577, - "length": 838, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)" - } - } - } + } + } + } + ], + "description": "JoiningFee.calc(uint256,uint256,address) (contracts/core/JoiningFee.sol#26-39) performs a multiplication on the result of a division:\n\t- (block.timestamp - (numCycles * periodDuration) - firstPeriodStartTimestamp) / 3600 * feePerHour (contracts/core/JoiningFee.sol#38)\n", + "markdown": "[JoiningFee.calc(uint256,uint256,address)](contracts/core/JoiningFee.sol#L26-L39) performs a multiplication on the result of a division:\n\t- [(block.timestamp - (numCycles * periodDuration) - firstPeriodStartTimestamp) / 3600 * feePerHour](contracts/core/JoiningFee.sol#L38)\n", + "first_markdown_element": "contracts/core/JoiningFee.sol#L26-L39", + "id": "c0d4beb09bbb97e4ec3e7a9e3bd4fc713e216c086a2436671c0e4fdbaa26965b", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "inEnterExitWindow", + "source_mapping": { + "start": 5308, + "length": 569, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [136, 137, 138, 139, 140, 141, 142, 143, 144], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Vault.constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)._vaultedTempleAccount (contracts/core/Vault.sol#65) lacks a zero-check on :\n\t\t- vaultedTempleAccount = _vaultedTempleAccount (contracts/core/Vault.sol#74)\n", - "markdown": "[Vault.constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)._vaultedTempleAccount](contracts/core/Vault.sol#L65) lacks a zero-check on :\n\t\t- [vaultedTempleAccount = _vaultedTempleAccount](contracts/core/Vault.sol#L74)\n", - "first_markdown_element": "contracts/core/Vault.sol#L65", - "id": "ec8f5d8d5e84e67e63f7cfdbd240113b25d7e450ff6b895abf8718c03e3b752b", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "redeemExposures", - "source_mapping": { - "start": 4673, - "length": 251, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 113, - 114, - 115, - 116, - 117, - 118, - 119 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "redeemExposures(Exposure[])" - } - }, - { - "type": "node", - "name": "exposures[i].redeem()", - "source_mapping": { - "start": 4817, - "length": 21, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 115 - ], - "starting_column": 13, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "redeemExposures", - "source_mapping": { - "start": 4673, - "length": 251, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 113, - 114, - 115, - 116, - 117, - 118, - 119 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "redeemExposures(Exposure[])" - } - } - } + }, + "signature": "inEnterExitWindow()" + } + }, + { + "type": "node", + "name": "cycleNumber = (block.timestamp - firstPeriodStartTimestamp) / periodDuration", + "source_mapping": { + "start": 5646, + "length": 76, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [142], + "starting_column": 9, + "ending_column": 85 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "inEnterExitWindow", + "source_mapping": { + "start": 5308, + "length": 569, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [136, 137, 138, 139, 140, 141, 142, 143, 144], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "inEnterExitWindow()" } - ], - "description": "Vault.redeemExposures(Exposure[]) (contracts/core/Vault.sol#113-119) has external calls inside a loop: exposures[i].redeem() (contracts/core/Vault.sol#115)\n", - "markdown": "[Vault.redeemExposures(Exposure[])](contracts/core/Vault.sol#L113-L119) has external calls inside a loop: [exposures[i].redeem()](contracts/core/Vault.sol#L115)\n", - "first_markdown_element": "contracts/core/Vault.sol#L113-L119", - "id": "01aa5d049bc48e72ff906b543385ff9caecb8e5566910551f607713f18675e33", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "depositFor", - "source_mapping": { - "start": 6905, - "length": 779, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "depositFor(address,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(templeToken,msg.sender,vaultedTempleAccount,_amount)", - "source_mapping": { - "start": 7467, - "length": 82, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 187 - ], - "starting_column": 13, - "ending_column": 95 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositFor", - "source_mapping": { - "start": 6905, - "length": 779, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "depositFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "templeExposureToken.mint(address(this),_amount)", - "source_mapping": { - "start": 7563, - "length": 48, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 188 - ], - "starting_column": 13, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositFor", - "source_mapping": { - "start": 6905, - "length": 779, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "depositFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Deposit(_account,_amount,amountStaked)", - "source_mapping": { - "start": 7632, - "length": 45, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 191 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositFor", - "source_mapping": { - "start": 6905, - "length": 779, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "depositFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + } + }, + { + "type": "node", + "name": "inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp", + "source_mapping": { + "start": 5732, + "length": 138, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [143], + "starting_column": 9, + "ending_column": 147 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "inEnterExitWindow", + "source_mapping": { + "start": 5308, + "length": 569, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [136, 137, 138, 139, 140, 141, 142, 143, 144], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "inEnterExitWindow()" } - ], - "description": "Reentrancy in Vault.depositFor(address,uint256) (contracts/core/Vault.sol#176-192):\n\tExternal calls:\n\t- SafeERC20.safeTransferFrom(templeToken,msg.sender,vaultedTempleAccount,_amount) (contracts/core/Vault.sol#187)\n\t- templeExposureToken.mint(address(this),_amount) (contracts/core/Vault.sol#188)\n\tEvent emitted after the call(s):\n\t- Deposit(_account,_amount,amountStaked) (contracts/core/Vault.sol#191)\n", - "markdown": "Reentrancy in [Vault.depositFor(address,uint256)](contracts/core/Vault.sol#L176-L192):\n\tExternal calls:\n\t- [SafeERC20.safeTransferFrom(templeToken,msg.sender,vaultedTempleAccount,_amount)](contracts/core/Vault.sol#L187)\n\t- [templeExposureToken.mint(address(this),_amount)](contracts/core/Vault.sol#L188)\n\tEvent emitted after the call(s):\n\t- [Deposit(_account,_amount,amountStaked)](contracts/core/Vault.sol#L191)\n", - "first_markdown_element": "contracts/core/Vault.sol#L176-L192", - "id": "9b7f364b05b547bddc816a0d5b06d8980808dad51839e6d4b0a54fad3ee65e71", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 8008, - "length": 355, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,address,uint256)" - } - }, - { - "type": "node", - "name": "templeExposureToken.redeemAmount(_amount,_to)", - "source_mapping": { - "start": 8268, - "length": 46, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 207 - ], - "starting_column": 9, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 8008, - "length": 355, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Withdraw(_account,_amount)", - "source_mapping": { - "start": 8324, - "length": 32, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 208 - ], - "starting_column": 9, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 8008, - "length": 355, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + } + } + ], + "description": "Vault.inEnterExitWindow() (contracts/core/Vault.sol#136-144) performs a multiplication on the result of a division:\n\t- cycleNumber = (block.timestamp - firstPeriodStartTimestamp) / periodDuration (contracts/core/Vault.sol#142)\n\t- inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp (contracts/core/Vault.sol#143)\n", + "markdown": "[Vault.inEnterExitWindow()](contracts/core/Vault.sol#L136-L144) performs a multiplication on the result of a division:\n\t- [cycleNumber = (block.timestamp - firstPeriodStartTimestamp) / periodDuration](contracts/core/Vault.sol#L142)\n\t- [inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp](contracts/core/Vault.sol#L143)\n", + "first_markdown_element": "contracts/core/Vault.sol#L136-L144", + "id": "8c7714b71ec341b6d2099880abd107a6f2fea28b8e3eacb52ca0a2b093c07ec7", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "amountPerShare", + "source_mapping": { + "start": 4930, + "length": 372, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Reentrancy in Vault.withdrawFor(address,address,uint256) (contracts/core/Vault.sol#200-209):\n\tExternal calls:\n\t- templeExposureToken.redeemAmount(_amount,_to) (contracts/core/Vault.sol#207)\n\tEvent emitted after the call(s):\n\t- Withdraw(_account,_amount) (contracts/core/Vault.sol#208)\n", - "markdown": "Reentrancy in [Vault.withdrawFor(address,address,uint256)](contracts/core/Vault.sol#L200-L209):\n\tExternal calls:\n\t- [templeExposureToken.redeemAmount(_amount,_to)](contracts/core/Vault.sol#L207)\n\tEvent emitted after the call(s):\n\t- [Withdraw(_account,_amount)](contracts/core/Vault.sol#L208)\n", - "first_markdown_element": "contracts/core/Vault.sol#L200-L209", - "id": "2ff96324c82420cceeabf74c571ad57f47606117de95c992bffac11206a305e2", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 3881, - "length": 543, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)" - } - }, - { - "type": "node", - "name": "require(bool,string)(block.timestamp <= deadline,Vault: expired deadline)", - "source_mapping": { - "start": 3999, - "length": 63, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 97 - ], - "starting_column": 9, - "ending_column": 72 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 3881, - "length": 543, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)" - } - } - } + }, + "signature": "amountPerShare()" + } + }, + { + "type": "node", + "name": "p == 0", + "source_mapping": { + "start": 5206, + "length": 6, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [127], + "starting_column": 13, + "ending_column": 19 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "amountPerShare", + "source_mapping": { + "start": 4930, + "length": 372, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "amountPerShare()" } - ], - "description": "Vault.withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32) (contracts/core/Vault.sol#96-106) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(block.timestamp <= deadline,Vault: expired deadline) (contracts/core/Vault.sol#97)\n", - "markdown": "[Vault.withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)](contracts/core/Vault.sol#L96-L106) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(block.timestamp <= deadline,Vault: expired deadline)](contracts/core/Vault.sol#L97)\n", - "first_markdown_element": "contracts/core/Vault.sol#L96-L106", - "id": "f068d8a851d72d0e6aff89812664a80d33b8197abca1bbd0f276ffb2d0976be9", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5308, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - }, - { - "type": "node", - "name": "block.timestamp < firstPeriodStartTimestamp", - "source_mapping": { - "start": 5408, - "length": 43, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 137 - ], - "starting_column": 13, - "ending_column": 56 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5308, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - } - } - }, - { - "type": "node", - "name": "inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp", - "source_mapping": { - "start": 5732, - "length": 138, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 9, - "ending_column": 147 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5308, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1182, - "length": 7311, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - } - } + } + } + } + ], + "description": "Vault.amountPerShare() (contracts/core/Vault.sol#121-134) uses a dangerous strict equality:\n\t- p == 0 (contracts/core/Vault.sol#127)\n", + "markdown": "[Vault.amountPerShare()](contracts/core/Vault.sol#L121-L134) uses a dangerous strict equality:\n\t- [p == 0](contracts/core/Vault.sol#L127)\n", + "first_markdown_element": "contracts/core/Vault.sol#L121-L134", + "id": "de749cfce8ce80cfe760160d413ea1c1c688ac04215e9656e646ee64ebe27c1c", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Vault.inEnterExitWindow() (contracts/core/Vault.sol#136-144) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp < firstPeriodStartTimestamp (contracts/core/Vault.sol#137)\n\t- inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp (contracts/core/Vault.sol#143)\n", - "markdown": "[Vault.inEnterExitWindow()](contracts/core/Vault.sol#L136-L144) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp < firstPeriodStartTimestamp](contracts/core/Vault.sol#L137)\n\t- [inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp](contracts/core/Vault.sol#L143)\n", - "first_markdown_element": "contracts/core/Vault.sol#L136-L144", - "id": "98e47a8cf8913fe5f00789bc8f3a53fa3c1e0e9b8b92efcdb9b5ef3830020ac1", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "relayedSetEndorsementsFor", - "source_mapping": { - "start": 3591, - "length": 777, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ElderElection", - "source_mapping": { - "start": 906, - "length": 4691, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)" - } - }, - { - "type": "node", - "name": "block.timestamp > req.deadline", - "source_mapping": { - "start": 4063, - "length": 30, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 125 - ], - "starting_column": 13, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "relayedSetEndorsementsFor", - "source_mapping": { - "start": 3591, - "length": 777, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ElderElection", - "source_mapping": { - "start": 906, - "length": 4691, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)" - } - } - } + }, + "signature": "_safeTransfer(address,address,uint256)" + } + }, + { + "type": "node", + "name": "require(bool,string)(success && (data.length == 0 || abi.decode(data,(bool))),UniswapV2: TRANSFER_FAILED)", + "source_mapping": { + "start": 2073, + "length": 96, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [51], + "starting_column": 9, + "ending_column": 105 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" } - ], - "description": "ElderElection.relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes) (contracts/governance/ElderElection.sol#113-130) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > req.deadline (contracts/governance/ElderElection.sol#125)\n", - "markdown": "[ElderElection.relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)](contracts/governance/ElderElection.sol#L113-L130) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > req.deadline](contracts/governance/ElderElection.sol#L125)\n", - "first_markdown_element": "contracts/governance/ElderElection.sol#L113-L130", - "id": "31d44efcaba3f32313f62c26600e07feb7aba4d64fcce96eecdf1f4369fe9158", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5447, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - }, - { - "type": "node", - "name": "cycleNumber = (block.timestamp - firstPeriodStartTimestamp) / periodDuration", - "source_mapping": { - "start": 5785, - "length": 76, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 147 - ], - "starting_column": 9, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5447, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - } - } - }, - { - "type": "node", - "name": "inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp", - "source_mapping": { - "start": 5871, - "length": 138, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 148 - ], - "starting_column": 9, - "ending_column": 147 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5447, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - } - } + } + } + } + ], + "description": "TempleUniswapV2Pair._safeTransfer(address,address,uint256) (contracts/amm/TempleUniswapV2Pair.sol#49-52) uses a dangerous strict equality:\n\t- require(bool,string)(success && (data.length == 0 || abi.decode(data,(bool))),UniswapV2: TRANSFER_FAILED) (contracts/amm/TempleUniswapV2Pair.sol#51)\n", + "markdown": "[TempleUniswapV2Pair._safeTransfer(address,address,uint256)](contracts/amm/TempleUniswapV2Pair.sol#L49-L52) uses a dangerous strict equality:\n\t- [require(bool,string)(success && (data.length == 0 || abi.decode(data,(bool))),UniswapV2: TRANSFER_FAILED)](contracts/amm/TempleUniswapV2Pair.sol#L51)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L49-L52", + "id": "2ee4045d0f377d6f8b394394680249a386668a22c42975e90902df9d8fa3b850", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "mint", + "source_mapping": { + "start": 4063, + "length": 1069, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Vault.inEnterExitWindow() (contracts/core/Vault.sol#141-149) performs a multiplication on the result of a division:\n\t- cycleNumber = (block.timestamp - firstPeriodStartTimestamp) / periodDuration (contracts/core/Vault.sol#147)\n\t- inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp (contracts/core/Vault.sol#148)\n", - "markdown": "[Vault.inEnterExitWindow()](contracts/core/Vault.sol#L141-L149) performs a multiplication on the result of a division:\n\t- [cycleNumber = (block.timestamp - firstPeriodStartTimestamp) / periodDuration](contracts/core/Vault.sol#L147)\n\t- [inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp](contracts/core/Vault.sol#L148)\n", - "first_markdown_element": "contracts/core/Vault.sol#L141-L149", - "id": "717be346e746998493674019982fb46e250c4f72fd211eec2ef2f3fd9e2a9c0a", - "check": "divide-before-multiply", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "amountPerShare", - "source_mapping": { - "start": 5069, - "length": 372, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "amountPerShare()" - } - }, - { - "type": "node", - "name": "p == 0", - "source_mapping": { - "start": 5345, - "length": 6, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 132 - ], - "starting_column": 13, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "amountPerShare", - "source_mapping": { - "start": 5069, - "length": 372, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "amountPerShare()" - } - } - } + }, + "signature": "mint(address)" + } + }, + { + "type": "node", + "name": "_totalSupply == 0", + "source_mapping": { + "start": 4568, + "length": 17, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [104], + "starting_column": 13, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "mint", + "source_mapping": { + "start": 4063, + "length": 1069, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "mint(address)" } - ], - "description": "Vault.amountPerShare() (contracts/core/Vault.sol#126-139) uses a dangerous strict equality:\n\t- p == 0 (contracts/core/Vault.sol#132)\n", - "markdown": "[Vault.amountPerShare()](contracts/core/Vault.sol#L126-L139) uses a dangerous strict equality:\n\t- [p == 0](contracts/core/Vault.sol#L132)\n", - "first_markdown_element": "contracts/core/Vault.sol#L126-L139", - "id": "9bf28545ec14522c94d6b47cd45800c6fbc0f2c690012899ca32b940237dd5f0", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 867, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31745, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - }, - { - "type": "node", - "name": "daiToken.approve(previousTrv,0)", - "source_mapping": { - "start": 16002, - "length": 32, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 394 - ], - "starting_column": 13, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 867, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31745, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "treasuryReservesVault = ITreasuryReservesVault(_trv)", - "source_mapping": { - "start": 16124, - "length": 52, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 398 - ], - "starting_column": 9, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 867, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31745, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "treasuryReservesVault" - } + } + } + } + ], + "description": "TempleUniswapV2Pair.mint(address) (contracts/amm/TempleUniswapV2Pair.sol#96-115) uses a dangerous strict equality:\n\t- _totalSupply == 0 (contracts/amm/TempleUniswapV2Pair.sol#104)\n", + "markdown": "[TempleUniswapV2Pair.mint(address)](contracts/amm/TempleUniswapV2Pair.sol#L96-L115) uses a dangerous strict equality:\n\t- [_totalSupply == 0](contracts/amm/TempleUniswapV2Pair.sol#L104)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L96-L115", + "id": "f3faa53f859ed259e9ff2509250c109f539dc4c8a41ed53a9c3a3342c73a4cea", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "decreaseShares", + "source_mapping": { + "start": 2375, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [69, 70, 71, 72, 73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-410):\n\tExternal calls:\n\t- daiToken.approve(previousTrv,0) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#394)\n\tState variables written after the call(s):\n\t- treasuryReservesVault = ITreasuryReservesVault(_trv) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#398)\n\tTempleLineOfCredit.treasuryReservesVault (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#53) can be used in cross function reentrancies:\n\t- TempleLineOfCredit._initDebtTokenCache(TempleLineOfCredit.DebtTokenCache) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#619-658)\n\t- TempleLineOfCredit._repayToken(TempleLineOfCredit.DebtTokenCache,uint128,address,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#705-721)\n\t- TempleLineOfCredit.batchLiquidate(address[]) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#318-359)\n\t- TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-410)\n\t- TempleLineOfCredit.treasuryReservesVault (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#53)\n", - "markdown": "Reentrancy in [TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410):\n\tExternal calls:\n\t- [daiToken.approve(previousTrv,0)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)\n\tState variables written after the call(s):\n\t- [treasuryReservesVault = ITreasuryReservesVault(_trv)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L398)\n\t[TempleLineOfCredit.treasuryReservesVault](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L53) can be used in cross function reentrancies:\n\t- [TempleLineOfCredit._initDebtTokenCache(TempleLineOfCredit.DebtTokenCache)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L619-L658)\n\t- [TempleLineOfCredit._repayToken(TempleLineOfCredit.DebtTokenCache,uint128,address,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L705-L721)\n\t- [TempleLineOfCredit.batchLiquidate(address[])](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L318-L359)\n\t- [TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410)\n\t- [TempleLineOfCredit.treasuryReservesVault](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L53)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410", - "id": "2135b52f35db6cda9505a21d3dca08e0bc753e863d4701970ef206e54e163bb1", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7960, - "length": 733, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - }, - { - "type": "node", - "name": "protocolToken.approve(previousVault,0)", - "source_mapping": { - "start": 8228, - "length": 39, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 195 - ], - "starting_column": 13, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7960, - "length": 733, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.approve(previousVault,0)", - "source_mapping": { - "start": 8281, - "length": 36, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 196 - ], - "starting_column": 13, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7960, - "length": 733, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "tokenVault = IRamosTokenVault(vault)", - "source_mapping": { - "start": 8338, - "length": 36, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 199 - ], - "starting_column": 9, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7960, - "length": 733, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "tokenVault" - } + }, + "signature": "decreaseShares(address,uint256)" + } + }, + { + "type": "node", + "name": "claimFor(account)", + "source_mapping": { + "start": 2461, + "length": 17, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [70], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "decreaseShares", + "source_mapping": { + "start": 2375, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [69, 70, 71, 72, 73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "decreaseShares(address,uint256)" } - ], - "description": "Reentrancy in Ramos.setTokenVault(address) (contracts/amo/Ramos.sol#189-209):\n\tExternal calls:\n\t- protocolToken.approve(previousVault,0) (contracts/amo/Ramos.sol#195)\n\t- quoteToken.approve(previousVault,0) (contracts/amo/Ramos.sol#196)\n\tState variables written after the call(s):\n\t- tokenVault = IRamosTokenVault(vault) (contracts/amo/Ramos.sol#199)\n\tRamos.tokenVault (contracts/amo/Ramos.sol#78) can be used in cross function reentrancies:\n\t- Ramos.addLiquidity(IBalancerVault.JoinPoolRequest) (contracts/amo/Ramos.sol#464-513)\n\t- Ramos.rebalanceDownExit(uint256,uint256) (contracts/amo/Ramos.sol#334-364)\n\t- Ramos.rebalanceDownJoin(uint256,uint256) (contracts/amo/Ramos.sol#421-455)\n\t- Ramos.rebalanceUpExit(uint256,uint256) (contracts/amo/Ramos.sol#290-322)\n\t- Ramos.rebalanceUpJoin(uint256,uint256) (contracts/amo/Ramos.sol#376-409)\n\t- Ramos.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256) (contracts/amo/Ramos.sol#522-559)\n\t- Ramos.setTokenVault(address) (contracts/amo/Ramos.sol#189-209)\n\t- Ramos.tokenVault (contracts/amo/Ramos.sol#78)\n", - "markdown": "Reentrancy in [Ramos.setTokenVault(address)](contracts/amo/Ramos.sol#L189-L209):\n\tExternal calls:\n\t- [protocolToken.approve(previousVault,0)](contracts/amo/Ramos.sol#L195)\n\t- [quoteToken.approve(previousVault,0)](contracts/amo/Ramos.sol#L196)\n\tState variables written after the call(s):\n\t- [tokenVault = IRamosTokenVault(vault)](contracts/amo/Ramos.sol#L199)\n\t[Ramos.tokenVault](contracts/amo/Ramos.sol#L78) can be used in cross function reentrancies:\n\t- [Ramos.addLiquidity(IBalancerVault.JoinPoolRequest)](contracts/amo/Ramos.sol#L464-L513)\n\t- [Ramos.rebalanceDownExit(uint256,uint256)](contracts/amo/Ramos.sol#L334-L364)\n\t- [Ramos.rebalanceDownJoin(uint256,uint256)](contracts/amo/Ramos.sol#L421-L455)\n\t- [Ramos.rebalanceUpExit(uint256,uint256)](contracts/amo/Ramos.sol#L290-L322)\n\t- [Ramos.rebalanceUpJoin(uint256,uint256)](contracts/amo/Ramos.sol#L376-L409)\n\t- [Ramos.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)](contracts/amo/Ramos.sol#L522-L559)\n\t- [Ramos.setTokenVault(address)](contracts/amo/Ramos.sol#L189-L209)\n\t- [Ramos.tokenVault](contracts/amo/Ramos.sol#L78)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L189-L209", - "id": "48eaffc570a3dddf542c7c007ea26914107df0d0e389c27773f3315513b8c896", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7960, - "length": 733, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - }, - { - "type": "node", - "name": "protocolToken.approve(previousVault,0)", - "source_mapping": { - "start": 8228, - "length": 39, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 195 - ], - "starting_column": 13, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7960, - "length": 733, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", + "source_mapping": { + "start": 3214, + "length": 56, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claimFor", + "source_mapping": { + "start": 2738, + "length": 611, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "claimFor(address)" } - ], - "description": "Ramos.setTokenVault(address) (contracts/amo/Ramos.sol#189-209) ignores return value by protocolToken.approve(previousVault,0) (contracts/amo/Ramos.sol#195)\n", - "markdown": "[Ramos.setTokenVault(address)](contracts/amo/Ramos.sol#L189-L209) ignores return value by [protocolToken.approve(previousVault,0)](contracts/amo/Ramos.sol#L195)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L189-L209", - "id": "f3361a65ee76c42e014ac2084189cb808a536ace3a08c0927237056d9aee806c", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7960, - "length": 733, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - }, - { - "type": "node", - "name": "quoteToken.approve(previousVault,0)", - "source_mapping": { - "start": 8281, - "length": 36, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 196 - ], - "starting_column": 13, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7960, - "length": 733, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "claimedByScaled[account] -= amount * lifetimeAccRevenueScaledByShare", + "source_mapping": { + "start": 2555, + "length": 68, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [74], + "starting_column": 9, + "ending_column": 77 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "decreaseShares", + "source_mapping": { + "start": 2375, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [69, 70, 71, 72, 73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "decreaseShares(address,uint256)" } - ], - "description": "Ramos.setTokenVault(address) (contracts/amo/Ramos.sol#189-209) ignores return value by quoteToken.approve(previousVault,0) (contracts/amo/Ramos.sol#196)\n", - "markdown": "[Ramos.setTokenVault(address)](contracts/amo/Ramos.sol#L189-L209) ignores return value by [quoteToken.approve(previousVault,0)](contracts/amo/Ramos.sol#L196)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L189-L209", - "id": "aface72eecf0b7ba93b6bf44cc1f3e5761d97abf8c0de3daa4bfebcc0d8b3ccf", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7960, - "length": 733, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - }, - { - "type": "node", - "name": "protocolToken.approve(vault,0)", - "source_mapping": { - "start": 8443, - "length": 31, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 203 - ], - "starting_column": 13, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7960, - "length": 733, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - } - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "claimedByScaled" + } + }, + { + "type": "node", + "name": "shares[account] -= amount", + "source_mapping": { + "start": 2489, + "length": 25, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [72], + "starting_column": 9, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "decreaseShares", + "source_mapping": { + "start": 2375, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [69, 70, 71, 72, 73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "decreaseShares(address,uint256)" } - ], - "description": "Ramos.setTokenVault(address) (contracts/amo/Ramos.sol#189-209) ignores return value by protocolToken.approve(vault,0) (contracts/amo/Ramos.sol#203)\n", - "markdown": "[Ramos.setTokenVault(address)](contracts/amo/Ramos.sol#L189-L209) ignores return value by [protocolToken.approve(vault,0)](contracts/amo/Ramos.sol#L203)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L189-L209", - "id": "3f23ebd3595ef20def4e503698854b7ef84727f803bb624df6da7ba38db32ca8", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7960, - "length": 733, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - }, - { - "type": "node", - "name": "quoteToken.approve(vault,0)", - "source_mapping": { - "start": 8576, - "length": 28, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 206 - ], - "starting_column": 13, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7960, - "length": 733, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - } - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "shares" + } + } + ], + "description": "Reentrancy in TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77):\n\tExternal calls:\n\t- claimFor(account) (contracts/core/TreasuryFarmingRevenue.sol#70)\n\t\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tState variables written after the call(s):\n\t- claimedByScaled[account] -= amount * lifetimeAccRevenueScaledByShare (contracts/core/TreasuryFarmingRevenue.sol#74)\n\tTreasuryFarmingRevenue.claimedByScaled (contracts/core/TreasuryFarmingRevenue.sol#30) can be used in cross function reentrancies:\n\t- TreasuryFarmingRevenue.claimFor(address) (contracts/core/TreasuryFarmingRevenue.sol#80-93)\n\t- TreasuryFarmingRevenue.claimedByScaled (contracts/core/TreasuryFarmingRevenue.sol#30)\n\t- TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77)\n\t- TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64)\n\t- shares[account] -= amount (contracts/core/TreasuryFarmingRevenue.sol#72)\n\tTreasuryFarmingRevenue.shares (contracts/core/TreasuryFarmingRevenue.sol#24) can be used in cross function reentrancies:\n\t- TreasuryFarmingRevenue.claimFor(address) (contracts/core/TreasuryFarmingRevenue.sol#80-93)\n\t- TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77)\n\t- TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64)\n\t- TreasuryFarmingRevenue.shares (contracts/core/TreasuryFarmingRevenue.sol#24)\n", + "markdown": "Reentrancy in [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77):\n\tExternal calls:\n\t- [claimFor(account)](contracts/core/TreasuryFarmingRevenue.sol#L70)\n\t\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tState variables written after the call(s):\n\t- [claimedByScaled[account] -= amount * lifetimeAccRevenueScaledByShare](contracts/core/TreasuryFarmingRevenue.sol#L74)\n\t[TreasuryFarmingRevenue.claimedByScaled](contracts/core/TreasuryFarmingRevenue.sol#L30) can be used in cross function reentrancies:\n\t- [TreasuryFarmingRevenue.claimFor(address)](contracts/core/TreasuryFarmingRevenue.sol#L80-L93)\n\t- [TreasuryFarmingRevenue.claimedByScaled](contracts/core/TreasuryFarmingRevenue.sol#L30)\n\t- [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77)\n\t- [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64)\n\t- [shares[account] -= amount](contracts/core/TreasuryFarmingRevenue.sol#L72)\n\t[TreasuryFarmingRevenue.shares](contracts/core/TreasuryFarmingRevenue.sol#L24) can be used in cross function reentrancies:\n\t- [TreasuryFarmingRevenue.claimFor(address)](contracts/core/TreasuryFarmingRevenue.sol#L80-L93)\n\t- [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77)\n\t- [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64)\n\t- [TreasuryFarmingRevenue.shares](contracts/core/TreasuryFarmingRevenue.sol#L24)\n", + "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L69-L77", + "id": "cc45c8f5d22793c2ba894c4d32e4043890c1184c0a94e5502d25b97876a95c86", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Ramos.setTokenVault(address) (contracts/amo/Ramos.sol#189-209) ignores return value by quoteToken.approve(vault,0) (contracts/amo/Ramos.sol#206)\n", - "markdown": "[Ramos.setTokenVault(address)](contracts/amo/Ramos.sol#L189-L209) ignores return value by [quoteToken.approve(vault,0)](contracts/amo/Ramos.sol#L206)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L189-L209", - "id": "bbd252b59f9154e81eaec7cd9986b9d3503a6eeea8f0871d4cd8297deb1648a5", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19982, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - }, - { - "type": "node", - "name": "quoteToken.approve(address(balancerVault),0)", - "source_mapping": { - "start": 21235, - "length": 45, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 491 - ], - "starting_column": 17, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19982, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + }, + { + "type": "node", + "name": "paymentContract.initialize(_token)", + "source_mapping": { + "start": 3294, + "length": 34, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [89], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" } - ], - "description": "Ramos.addLiquidity(IBalancerVault.JoinPoolRequest) (contracts/amo/Ramos.sol#464-513) ignores return value by quoteToken.approve(address(balancerVault),0) (contracts/amo/Ramos.sol#491)\n", - "markdown": "[Ramos.addLiquidity(IBalancerVault.JoinPoolRequest)](contracts/amo/Ramos.sol#L464-L513) ignores return value by [quoteToken.approve(address(balancerVault),0)](contracts/amo/Ramos.sol#L491)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L464-L513", - "id": "8cfe4055a8ead5cc98c03c6e8f3466a558b794c381be26bbd8ba62d5773dfc96", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_setTokenAllowance", - "source_mapping": { - "start": 7543, - "length": 292, - "filename_relative": "contracts/v2/strategies/AbstractStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/AbstractStrategy.sol", - "filename_short": "contracts/v2/strategies/AbstractStrategy.sol", - "is_dependency": false, - "lines": [ - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AbstractStrategy", - "source_mapping": { - "start": 766, - "length": 8261, - "filename_relative": "contracts/v2/strategies/AbstractStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/AbstractStrategy.sol", - "filename_short": "contracts/v2/strategies/AbstractStrategy.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_setTokenAllowance(IERC20,address,uint256)" - } - }, - { - "type": "node", - "name": "token.approve(spender,0)", - "source_mapping": { - "start": 7709, - "length": 25, - "filename_relative": "contracts/v2/strategies/AbstractStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/AbstractStrategy.sol", - "filename_short": "contracts/v2/strategies/AbstractStrategy.sol", - "is_dependency": false, - "lines": [ - 201 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_setTokenAllowance", - "source_mapping": { - "start": 7543, - "length": 292, - "filename_relative": "contracts/v2/strategies/AbstractStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/AbstractStrategy.sol", - "filename_short": "contracts/v2/strategies/AbstractStrategy.sol", - "is_dependency": false, - "lines": [ - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AbstractStrategy", - "source_mapping": { - "start": 766, - "length": 8261, - "filename_relative": "contracts/v2/strategies/AbstractStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/AbstractStrategy.sol", - "filename_short": "contracts/v2/strategies/AbstractStrategy.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_setTokenAllowance(IERC20,address,uint256)" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "paymentContract.setAllocations(_dests,_allocations)", + "source_mapping": { + "start": 3338, + "length": 52, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [90], + "starting_column": 9, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" } - ], - "description": "AbstractStrategy._setTokenAllowance(IERC20,address,uint256) (contracts/v2/strategies/AbstractStrategy.sol#198-205) ignores return value by token.approve(spender,0) (contracts/v2/strategies/AbstractStrategy.sol#201)\n", - "markdown": "[AbstractStrategy._setTokenAllowance(IERC20,address,uint256)](contracts/v2/strategies/AbstractStrategy.sol#L198-L205) ignores return value by [token.approve(spender,0)](contracts/v2/strategies/AbstractStrategy.sol#L201)\n", - "first_markdown_element": "contracts/v2/strategies/AbstractStrategy.sol#L198-L205", - "id": "fe54e23af391cab77538cf964ce5bafd58b1d5d90408ffbb29567e57cce7034b", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1703, - "length": 783, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,string,address,address,address,address)" - } - }, - { - "type": "node", - "name": "daiToken.approve(address(daiJoin),0)", - "source_mapping": { - "start": 2300, - "length": 37, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 60 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1703, - "length": 783, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,string,address,address,address,address)" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "paymentContract.transferOwnership(msg.sender)", + "source_mapping": { + "start": 3401, + "length": 45, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [92], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" } - ], - "description": "DsrBaseStrategy.constructor(address,address,string,address,address,address,address) (contracts/v2/strategies/DsrBaseStrategy.sol#45-63) ignores return value by daiToken.approve(address(daiJoin),0) (contracts/v2/strategies/DsrBaseStrategy.sol#60)\n", - "markdown": "[DsrBaseStrategy.constructor(address,address,string,address,address,address,address)](contracts/v2/strategies/DsrBaseStrategy.sol#L45-L63) ignores return value by [daiToken.approve(address(daiJoin),0)](contracts/v2/strategies/DsrBaseStrategy.sol#L60)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L45-L63", - "id": "4967b397ecef207c96da05eb70c114a13c1c7d857b8e9ff4ecf5fad941835b1e", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 867, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31745, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - }, - { - "type": "node", - "name": "daiToken.approve(previousTrv,0)", - "source_mapping": { - "start": 16002, - "length": 32, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 394 - ], - "starting_column": 13, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 867, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31745, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)", + "source_mapping": { + "start": 3493, + "length": 165, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [95, 96, 97, 98, 99, 100], + "starting_column": 13, + "ending_column": 14 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" } - ], - "description": "TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-410) ignores return value by daiToken.approve(previousTrv,0) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#394)\n", - "markdown": "[TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410) ignores return value by [daiToken.approve(previousTrv,0)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410", - "id": "5fa79b657e0f64d022302a3a9b887d1ab1e0a67d8ba497e49c5d707e4f4d8bb3", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 867, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31745, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - }, - { - "type": "node", - "name": "daiToken.approve(_trv,0)", - "source_mapping": { - "start": 16245, - "length": 25, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 402 - ], - "starting_column": 13, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 867, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31745, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "incrementEpoch(address(paymentContract),_totalFunding)", + "source_mapping": { + "start": 3669, + "length": 55, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [102], + "starting_column": 9, + "ending_column": 64 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" } - ], - "description": "TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-410) ignores return value by daiToken.approve(_trv,0) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#402)\n", - "markdown": "[TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410) ignores return value by [daiToken.approve(_trv,0)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L402)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410", - "id": "2a2e696dfe161cf52cb068ca3bf244c48da6cb0a5cabf7dccb1d048831709aac", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_vaultedTempleAccount", - "source_mapping": { - "start": 2865, - "length": 29, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 70 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 2716, - "length": 838, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)" - } - } - } - }, - { - "type": "node", - "name": "vaultedTempleAccount = _vaultedTempleAccount", - "source_mapping": { - "start": 3255, - "length": 44, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 79 - ], - "starting_column": 9, - "ending_column": 53 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 2716, - "length": 838, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)" - } - } - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "lastPaidEpoch" + } + }, + { + "type": "node", + "name": "data = FundingData({paymentContract:address(_paymentContract),totalFunding:_totalFunding,epoch:lastPaidEpoch ++})", + "source_mapping": { + "start": 1562, + "length": 182, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [50, 51, 52, 53, 54], + "starting_column": 9, + "ending_column": 11 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "incrementEpoch", + "source_mapping": { + "start": 1448, + "length": 347, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "incrementEpoch(address,uint256)" } - ], - "description": "Vault.constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)._vaultedTempleAccount (contracts/core/Vault.sol#70) lacks a zero-check on :\n\t\t- vaultedTempleAccount = _vaultedTempleAccount (contracts/core/Vault.sol#79)\n", - "markdown": "[Vault.constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)._vaultedTempleAccount](contracts/core/Vault.sol#L70) lacks a zero-check on :\n\t\t- [vaultedTempleAccount = _vaultedTempleAccount](contracts/core/Vault.sol#L79)\n", - "first_markdown_element": "contracts/core/Vault.sol#L70", - "id": "85cdd0b66fd3466c49d27b5e7e75cf5cb971c2777b5d51cf4bf2a8fcf096b82c", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "redeemExposures", - "source_mapping": { - "start": 4812, - "length": 251, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "redeemExposures(Exposure[])" - } - }, - { - "type": "node", - "name": "exposures[i].redeem()", - "source_mapping": { - "start": 4956, - "length": 21, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 120 - ], - "starting_column": 13, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "redeemExposures", - "source_mapping": { - "start": 4812, - "length": 251, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "redeemExposures(Exposure[])" - } - } - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "lastPaidEpoch" + } + } + ], + "description": "Reentrancy in TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256) (contracts/admin/TempleTeamPaymentsFactory.sol#79-112):\n\tExternal calls:\n\t- paymentContract.initialize(_token) (contracts/admin/TempleTeamPaymentsFactory.sol#89)\n\t- paymentContract.setAllocations(_dests,_allocations) (contracts/admin/TempleTeamPaymentsFactory.sol#90)\n\t- paymentContract.transferOwnership(msg.sender) (contracts/admin/TempleTeamPaymentsFactory.sol#92)\n\t- SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#95-100)\n\tState variables written after the call(s):\n\t- incrementEpoch(address(paymentContract),_totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#102)\n\t\t- data = FundingData({paymentContract:address(_paymentContract),totalFunding:_totalFunding,epoch:lastPaidEpoch ++}) (contracts/admin/TempleTeamPaymentsFactory.sol#50-54)\n\tTempleTeamPaymentsFactory.lastPaidEpoch (contracts/admin/TempleTeamPaymentsFactory.sol#23) can be used in cross function reentrancies:\n\t- TempleTeamPaymentsFactory.constructor(address,uint16) (contracts/admin/TempleTeamPaymentsFactory.sol#40-44)\n\t- TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256) (contracts/admin/TempleTeamPaymentsFactory.sol#79-112)\n\t- TempleTeamPaymentsFactory.directPayouts(IERC20,address[],uint256[]) (contracts/admin/TempleTeamPaymentsFactory.sol#119-143)\n\t- TempleTeamPaymentsFactory.incrementEpoch(address,uint256) (contracts/admin/TempleTeamPaymentsFactory.sol#46-56)\n\t- TempleTeamPaymentsFactory.lastPaidEpoch (contracts/admin/TempleTeamPaymentsFactory.sol#23)\n", + "markdown": "Reentrancy in [TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256)](contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112):\n\tExternal calls:\n\t- [paymentContract.initialize(_token)](contracts/admin/TempleTeamPaymentsFactory.sol#L89)\n\t- [paymentContract.setAllocations(_dests,_allocations)](contracts/admin/TempleTeamPaymentsFactory.sol#L90)\n\t- [paymentContract.transferOwnership(msg.sender)](contracts/admin/TempleTeamPaymentsFactory.sol#L92)\n\t- [SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L95-L100)\n\tState variables written after the call(s):\n\t- [incrementEpoch(address(paymentContract),_totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L102)\n\t\t- [data = FundingData({paymentContract:address(_paymentContract),totalFunding:_totalFunding,epoch:lastPaidEpoch ++})](contracts/admin/TempleTeamPaymentsFactory.sol#L50-L54)\n\t[TempleTeamPaymentsFactory.lastPaidEpoch](contracts/admin/TempleTeamPaymentsFactory.sol#L23) can be used in cross function reentrancies:\n\t- [TempleTeamPaymentsFactory.constructor(address,uint16)](contracts/admin/TempleTeamPaymentsFactory.sol#L40-L44)\n\t- [TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256)](contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112)\n\t- [TempleTeamPaymentsFactory.directPayouts(IERC20,address[],uint256[])](contracts/admin/TempleTeamPaymentsFactory.sol#L119-L143)\n\t- [TempleTeamPaymentsFactory.incrementEpoch(address,uint256)](contracts/admin/TempleTeamPaymentsFactory.sol#L46-L56)\n\t- [TempleTeamPaymentsFactory.lastPaidEpoch](contracts/admin/TempleTeamPaymentsFactory.sol#L23)\n", + "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112", + "id": "1239a22bea2c9a42dbde3ae4ac80f8aa9a378a084fd732a81c3169ae01c87319", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "increaseShares", + "source_mapping": { + "start": 2007, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Vault.redeemExposures(Exposure[]) (contracts/core/Vault.sol#118-124) has external calls inside a loop: exposures[i].redeem() (contracts/core/Vault.sol#120)\n", - "markdown": "[Vault.redeemExposures(Exposure[])](contracts/core/Vault.sol#L118-L124) has external calls inside a loop: [exposures[i].redeem()](contracts/core/Vault.sol#L120)\n", - "first_markdown_element": "contracts/core/Vault.sol#L118-L124", - "id": "3d603bcb54a041008ffbbe59a19e8bd58f4f81a44da80677cf0c3c382caed94a", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_doShutdown", - "source_mapping": { - "start": 12337, - "length": 502, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_doShutdown(bytes)" - } - }, - { - "type": "node", - "name": "(daiAvailable,sharesAvailable) = _checkpointDaiBalance()", - "source_mapping": { - "start": 12444, - "length": 74, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 296 - ], - "starting_column": 9, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_doShutdown", - "source_mapping": { - "start": 12337, - "length": 502, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_doShutdown(bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5623, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5502, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAvailable,daiAvailable)", - "source_mapping": { - "start": 12528, - "length": 45, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 297 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_doShutdown", - "source_mapping": { - "start": 12337, - "length": 502, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_doShutdown(bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "pot.exit(sharesAmount)", - "source_mapping": { - "start": 11654, - "length": 22, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 280 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "daiJoin.exit(address(this),daiAmount)", - "source_mapping": { - "start": 11686, - "length": 38, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 281 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiWithdrawn(daiAmount)", - "source_mapping": { - "start": 11734, - "length": 28, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 282 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAvailable,daiAvailable)", - "source_mapping": { - "start": 12528, - "length": 45, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 297 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_doShutdown", - "source_mapping": { - "start": 12337, - "length": 502, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_doShutdown(bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "increaseShares(address,uint256)" + } + }, + { + "type": "node", + "name": "claimFor(account)", + "source_mapping": { + "start": 2093, + "length": 17, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [57], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "increaseShares", + "source_mapping": { + "start": 2007, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "increaseShares(address,uint256)" } - ], - "description": "Reentrancy in DsrBaseStrategy._doShutdown(bytes) (contracts/v2/strategies/DsrBaseStrategy.sol#294-304):\n\tExternal calls:\n\t- (daiAvailable,sharesAvailable) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#296)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#143)\n\t- _dsrWithdrawal(sharesAvailable,daiAvailable) (contracts/v2/strategies/DsrBaseStrategy.sol#297)\n\t\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\t\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#282)\n\t\t- _dsrWithdrawal(sharesAvailable,daiAvailable) (contracts/v2/strategies/DsrBaseStrategy.sol#297)\n", - "markdown": "Reentrancy in [DsrBaseStrategy._doShutdown(bytes)](contracts/v2/strategies/DsrBaseStrategy.sol#L294-L304):\n\tExternal calls:\n\t- [(daiAvailable,sharesAvailable) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L296)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L143)\n\t- [_dsrWithdrawal(sharesAvailable,daiAvailable)](contracts/v2/strategies/DsrBaseStrategy.sol#L297)\n\t\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\t\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L282)\n\t\t- [_dsrWithdrawal(sharesAvailable,daiAvailable)](contracts/v2/strategies/DsrBaseStrategy.sol#L297)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L294-L304", - "id": "162a09c6744c38ec861b5ad8c5dc46412464e43cd266b5bfd7eefeb9a61079c3", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8118, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - }, - { - "type": "node", - "name": "shares = _rdiv(amount,_checkpointChi())", - "source_mapping": { - "start": 8305, - "length": 48, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 205 - ], - "starting_column": 9, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8118, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5623, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5502, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiDeposited(amount)", - "source_mapping": { - "start": 8364, - "length": 25, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 207 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8118, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", + "source_mapping": { + "start": 3214, + "length": 56, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claimFor", + "source_mapping": { + "start": 2738, + "length": 611, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "claimFor(address)" } - ], - "description": "Reentrancy in DsrBaseStrategy._dsrDeposit(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#202-210):\n\tExternal calls:\n\t- shares = _rdiv(amount,_checkpointChi()) (contracts/v2/strategies/DsrBaseStrategy.sol#205)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#143)\n\tEvent emitted after the call(s):\n\t- DaiDeposited(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#207)\n", - "markdown": "Reentrancy in [DsrBaseStrategy._dsrDeposit(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L202-L210):\n\tExternal calls:\n\t- [shares = _rdiv(amount,_checkpointChi())](contracts/v2/strategies/DsrBaseStrategy.sol#L205)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L143)\n\tEvent emitted after the call(s):\n\t- [DaiDeposited(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L207)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L202-L210", - "id": "31ecea496d634c38d009ec8962d81c81c94608f13d1cb3e2fa53b0e77c9c34a8", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - }, - { - "type": "node", - "name": "pot.exit(sharesAmount)", - "source_mapping": { - "start": 11654, - "length": 22, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 280 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "daiJoin.exit(address(this),daiAmount)", - "source_mapping": { - "start": 11686, - "length": 38, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 281 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "DaiWithdrawn(daiAmount)", - "source_mapping": { - "start": 11734, - "length": 28, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 282 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "claimedByScaled[account] += amount * lifetimeAccRevenueScaledByShare", + "source_mapping": { + "start": 2187, + "length": 68, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [61], + "starting_column": 9, + "ending_column": 77 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "increaseShares", + "source_mapping": { + "start": 2007, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "increaseShares(address,uint256)" } - ], - "description": "Reentrancy in DsrBaseStrategy._dsrWithdrawal(uint256,uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#279-283):\n\tExternal calls:\n\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#282)\n", - "markdown": "Reentrancy in [DsrBaseStrategy._dsrWithdrawal(uint256,uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L279-L283):\n\tExternal calls:\n\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L282)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L279-L283", - "id": "e5458fd6a547ced33952741e22797ca1e9bc0a8205ea60a9cc8c50741df49c7d", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19982, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - }, - { - "type": "node", - "name": "_tokenVault.borrowProtocolToken(protocolTokenAmount,address(this))", - "source_mapping": { - "start": 20758, - "length": 67, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 483 - ], - "starting_column": 9, - "ending_column": 76 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19982, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_tokenVault.borrowQuoteToken(quoteTokenAmount,address(this))", - "source_mapping": { - "start": 20835, - "length": 61, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 484 - ], - "starting_column": 9, - "ending_column": 70 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19982, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "protocolToken.safeIncreaseAllowance(address(balancerVault),protocolTokenAmount)", - "source_mapping": { - "start": 20976, - "length": 80, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 488 - ], - "starting_column": 13, - "ending_column": 93 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19982, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.approve(address(balancerVault),0)", - "source_mapping": { - "start": 21235, - "length": 45, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 491 - ], - "starting_column": 17, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19982, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.safeIncreaseAllowance(address(balancerVault),quoteTokenAmount)", - "source_mapping": { - "start": 21298, - "length": 74, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 492 - ], - "starting_column": 17, - "ending_column": 91 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19982, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "balancerVault.joinPool(balancerPoolId,address(this),address(this),request)", - "source_mapping": { - "start": 21515, - "length": 77, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 499 - ], - "starting_column": 13, - "ending_column": 90 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19982, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "LiquidityAdded(quoteTokenAmount,protocolTokenAmount,bptTokensStaked)", - "source_mapping": { - "start": 21791, - "length": 75, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 506 - ], - "starting_column": 9, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 19982, - "length": 2088, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1890, - "length": 24313, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "claimedByScaled" + } + }, + { + "type": "node", + "name": "shares[account] += amount", + "source_mapping": { + "start": 2121, + "length": 25, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [59], + "starting_column": 9, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "increaseShares", + "source_mapping": { + "start": 2007, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "increaseShares(address,uint256)" } - ], - "description": "Reentrancy in Ramos.addLiquidity(IBalancerVault.JoinPoolRequest) (contracts/amo/Ramos.sol#464-513):\n\tExternal calls:\n\t- _tokenVault.borrowProtocolToken(protocolTokenAmount,address(this)) (contracts/amo/Ramos.sol#483)\n\t- _tokenVault.borrowQuoteToken(quoteTokenAmount,address(this)) (contracts/amo/Ramos.sol#484)\n\t- protocolToken.safeIncreaseAllowance(address(balancerVault),protocolTokenAmount) (contracts/amo/Ramos.sol#488)\n\t- quoteToken.approve(address(balancerVault),0) (contracts/amo/Ramos.sol#491)\n\t- quoteToken.safeIncreaseAllowance(address(balancerVault),quoteTokenAmount) (contracts/amo/Ramos.sol#492)\n\t- balancerVault.joinPool(balancerPoolId,address(this),address(this),request) (contracts/amo/Ramos.sol#499)\n\tEvent emitted after the call(s):\n\t- LiquidityAdded(quoteTokenAmount,protocolTokenAmount,bptTokensStaked) (contracts/amo/Ramos.sol#506)\n", - "markdown": "Reentrancy in [Ramos.addLiquidity(IBalancerVault.JoinPoolRequest)](contracts/amo/Ramos.sol#L464-L513):\n\tExternal calls:\n\t- [_tokenVault.borrowProtocolToken(protocolTokenAmount,address(this))](contracts/amo/Ramos.sol#L483)\n\t- [_tokenVault.borrowQuoteToken(quoteTokenAmount,address(this))](contracts/amo/Ramos.sol#L484)\n\t- [protocolToken.safeIncreaseAllowance(address(balancerVault),protocolTokenAmount)](contracts/amo/Ramos.sol#L488)\n\t- [quoteToken.approve(address(balancerVault),0)](contracts/amo/Ramos.sol#L491)\n\t- [quoteToken.safeIncreaseAllowance(address(balancerVault),quoteTokenAmount)](contracts/amo/Ramos.sol#L492)\n\t- [balancerVault.joinPool(balancerPoolId,address(this),address(this),request)](contracts/amo/Ramos.sol#L499)\n\tEvent emitted after the call(s):\n\t- [LiquidityAdded(quoteTokenAmount,protocolTokenAmount,bptTokensStaked)](contracts/amo/Ramos.sol#L506)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L464-L513", - "id": "9d1d41384a771213207142c0562efb08da2b45e1010143f4559901c2dd05fd06", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7866, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 196, - 197, - 198, - 199, - 200 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - }, - { - "type": "node", - "name": "treasuryReservesVault.borrow(daiToken,amount,address(this))", - "source_mapping": { - "start": 8015, - "length": 61, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 198 - ], - "starting_column": 9, - "ending_column": 70 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7866, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 196, - 197, - 198, - 199, - 200 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_dsrDeposit(amount)", - "source_mapping": { - "start": 8086, - "length": 19, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 199 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7866, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 196, - 197, - 198, - 199, - 200 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5623, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5502, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "daiJoin.join(address(this),amount)", - "source_mapping": { - "start": 8399, - "length": 35, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 208 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8118, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "pot.join(shares)", - "source_mapping": { - "start": 8444, - "length": 16, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 209 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8118, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiDeposited(amount)", - "source_mapping": { - "start": 8364, - "length": 25, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 207 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8118, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_dsrDeposit(amount)", - "source_mapping": { - "start": 8086, - "length": 19, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 199 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7866, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 196, - 197, - 198, - 199, - 200 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "shares" + } + } + ], + "description": "Reentrancy in TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64):\n\tExternal calls:\n\t- claimFor(account) (contracts/core/TreasuryFarmingRevenue.sol#57)\n\t\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tState variables written after the call(s):\n\t- claimedByScaled[account] += amount * lifetimeAccRevenueScaledByShare (contracts/core/TreasuryFarmingRevenue.sol#61)\n\tTreasuryFarmingRevenue.claimedByScaled (contracts/core/TreasuryFarmingRevenue.sol#30) can be used in cross function reentrancies:\n\t- TreasuryFarmingRevenue.claimFor(address) (contracts/core/TreasuryFarmingRevenue.sol#80-93)\n\t- TreasuryFarmingRevenue.claimedByScaled (contracts/core/TreasuryFarmingRevenue.sol#30)\n\t- TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77)\n\t- TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64)\n\t- shares[account] += amount (contracts/core/TreasuryFarmingRevenue.sol#59)\n\tTreasuryFarmingRevenue.shares (contracts/core/TreasuryFarmingRevenue.sol#24) can be used in cross function reentrancies:\n\t- TreasuryFarmingRevenue.claimFor(address) (contracts/core/TreasuryFarmingRevenue.sol#80-93)\n\t- TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77)\n\t- TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64)\n\t- TreasuryFarmingRevenue.shares (contracts/core/TreasuryFarmingRevenue.sol#24)\n", + "markdown": "Reentrancy in [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64):\n\tExternal calls:\n\t- [claimFor(account)](contracts/core/TreasuryFarmingRevenue.sol#L57)\n\t\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tState variables written after the call(s):\n\t- [claimedByScaled[account] += amount * lifetimeAccRevenueScaledByShare](contracts/core/TreasuryFarmingRevenue.sol#L61)\n\t[TreasuryFarmingRevenue.claimedByScaled](contracts/core/TreasuryFarmingRevenue.sol#L30) can be used in cross function reentrancies:\n\t- [TreasuryFarmingRevenue.claimFor(address)](contracts/core/TreasuryFarmingRevenue.sol#L80-L93)\n\t- [TreasuryFarmingRevenue.claimedByScaled](contracts/core/TreasuryFarmingRevenue.sol#L30)\n\t- [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77)\n\t- [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64)\n\t- [shares[account] += amount](contracts/core/TreasuryFarmingRevenue.sol#L59)\n\t[TreasuryFarmingRevenue.shares](contracts/core/TreasuryFarmingRevenue.sol#L24) can be used in cross function reentrancies:\n\t- [TreasuryFarmingRevenue.claimFor(address)](contracts/core/TreasuryFarmingRevenue.sol#L80-L93)\n\t- [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77)\n\t- [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64)\n\t- [TreasuryFarmingRevenue.shares](contracts/core/TreasuryFarmingRevenue.sol#L24)\n", + "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L56-L64", + "id": "7136d46cea8f0cb4f10b428d075c61a8ad801ba9ca1ef8c90733aaa52034f6ed", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_burnDToken", + "source_mapping": { + "start": 29999, + "length": 1179, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in DsrBaseStrategy.borrowAndDeposit(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#196-200):\n\tExternal calls:\n\t- treasuryReservesVault.borrow(daiToken,amount,address(this)) (contracts/v2/strategies/DsrBaseStrategy.sol#198)\n\t- _dsrDeposit(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#199)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#143)\n\t\t- daiJoin.join(address(this),amount) (contracts/v2/strategies/DsrBaseStrategy.sol#208)\n\t\t- pot.join(shares) (contracts/v2/strategies/DsrBaseStrategy.sol#209)\n\tEvent emitted after the call(s):\n\t- DaiDeposited(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#207)\n\t\t- _dsrDeposit(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#199)\n", - "markdown": "Reentrancy in [DsrBaseStrategy.borrowAndDeposit(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L196-L200):\n\tExternal calls:\n\t- [treasuryReservesVault.borrow(daiToken,amount,address(this))](contracts/v2/strategies/DsrBaseStrategy.sol#L198)\n\t- [_dsrDeposit(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L199)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L143)\n\t\t- [daiJoin.join(address(this),amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L208)\n\t\t- [pot.join(shares)](contracts/v2/strategies/DsrBaseStrategy.sol#L209)\n\tEvent emitted after the call(s):\n\t- [DaiDeposited(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L207)\n\t\t- [_dsrDeposit(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L199)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L196-L200", - "id": "9834f29d6227cb2437c23d0c4263e73bdb02e3f1fb272562d67035423d29b75a", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "checkpointAssetBalances", - "source_mapping": { - "start": 6945, - "length": 403, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "checkpointAssetBalances()" - } - }, - { - "type": "node", - "name": "(daiBalance) = _checkpointDaiBalance()", - "source_mapping": { - "start": 7068, - "length": 48, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 177 - ], - "starting_column": 9, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "checkpointAssetBalances", - "source_mapping": { - "start": 6945, - "length": 403, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "checkpointAssetBalances()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5623, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5502, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "AssetBalancesCheckpoint(assetBalances)", + }, + "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" + } + }, + { + "type": "node", + "name": "_burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount)", + "source_mapping": { + "start": 30398, + "length": 71, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [688], + "starting_column": 9, + "ending_column": 80 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_burnDToken", + "source_mapping": { + "start": 29999, + "length": 1179, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 7298, - "length": 43, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 183 - ], - "starting_column": 9, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "checkpointAssetBalances", - "source_mapping": { - "start": 6945, - "length": 403, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "checkpointAssetBalances()" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" } - ], - "description": "Reentrancy in DsrBaseStrategy.checkpointAssetBalances() (contracts/v2/strategies/DsrBaseStrategy.sol#174-184):\n\tExternal calls:\n\t- (daiBalance) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#177)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#143)\n\tEvent emitted after the call(s):\n\t- AssetBalancesCheckpoint(assetBalances) (contracts/v2/strategies/DsrBaseStrategy.sol#183)\n", - "markdown": "Reentrancy in [DsrBaseStrategy.checkpointAssetBalances()](contracts/v2/strategies/DsrBaseStrategy.sol#L174-L184):\n\tExternal calls:\n\t- [(daiBalance) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L177)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L143)\n\tEvent emitted after the call(s):\n\t- [AssetBalancesCheckpoint(assetBalances)](contracts/v2/strategies/DsrBaseStrategy.sol#L183)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L174-L184", - "id": "28bbe38832a28ccf266a19f5289dcdb9aa9f4ec8fe21442656b0b094a7d3e4d8", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "depositFor", - "source_mapping": { - "start": 7510, - "length": 779, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "depositFor(address,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(templeToken,msg.sender,vaultedTempleAccount,_amount)", - "source_mapping": { - "start": 8072, - "length": 82, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 208 - ], - "starting_column": 13, - "ending_column": 95 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositFor", - "source_mapping": { - "start": 7510, - "length": 779, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "depositFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "templeExposureToken.mint(address(this),_amount)", - "source_mapping": { - "start": 8168, - "length": 48, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 209 - ], - "starting_column": 13, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositFor", - "source_mapping": { - "start": 7510, - "length": 779, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "depositFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Deposit(_account,_amount,amountStaked)", + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "_tokenCredits[token] = _creditBalance", + "source_mapping": { + "start": 31023, + "length": 37, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [705], + "starting_column": 13, + "ending_column": 50 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_burnDToken", + "source_mapping": { + "start": 29999, + "length": 1179, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 8237, - "length": 45, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 212 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositFor", - "source_mapping": { - "start": 7510, - "length": 779, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "depositFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" } - ], - "description": "Reentrancy in Vault.depositFor(address,uint256) (contracts/core/Vault.sol#197-213):\n\tExternal calls:\n\t- SafeERC20.safeTransferFrom(templeToken,msg.sender,vaultedTempleAccount,_amount) (contracts/core/Vault.sol#208)\n\t- templeExposureToken.mint(address(this),_amount) (contracts/core/Vault.sol#209)\n\tEvent emitted after the call(s):\n\t- Deposit(_account,_amount,amountStaked) (contracts/core/Vault.sol#212)\n", - "markdown": "Reentrancy in [Vault.depositFor(address,uint256)](contracts/core/Vault.sol#L197-L213):\n\tExternal calls:\n\t- [SafeERC20.safeTransferFrom(templeToken,msg.sender,vaultedTempleAccount,_amount)](contracts/core/Vault.sol#L208)\n\t- [templeExposureToken.mint(address(this),_amount)](contracts/core/Vault.sol#L209)\n\tEvent emitted after the call(s):\n\t- [Deposit(_account,_amount,amountStaked)](contracts/core/Vault.sol#L212)\n", - "first_markdown_element": "contracts/core/Vault.sol#L197-L213", - "id": "ebb83133d2c55f388b7a879287c817b42c43e839216db992d78182548c8bb9c8", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 867, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31745, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - }, - { - "type": "node", - "name": "daiToken.approve(previousTrv,0)", - "source_mapping": { - "start": 16002, - "length": 32, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 394 - ], - "starting_column": 13, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 867, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31745, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "daiToken.approve(_trv,0)", + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "strategyTokenCredits" + } + } + ], + "description": "Reentrancy in TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#677-709):\n\tExternal calls:\n\t- _burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount) (contracts/v2/TreasuryReservesVault.sol#688)\n\tState variables written after the call(s):\n\t- _tokenCredits[token] = _creditBalance (contracts/v2/TreasuryReservesVault.sol#705)\n\tTreasuryReservesVault.strategyTokenCredits (contracts/v2/TreasuryReservesVault.sol#78) can be used in cross function reentrancies:\n\t- TreasuryReservesVault._availableForStrategyToBorrow(address,ITreasuryReservesVault.StrategyConfig,IERC20,uint256) (contracts/v2/TreasuryReservesVault.sol#533-551)\n\t- TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#677-709)\n\t- TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#638-670)\n\t- TreasuryReservesVault.setStrategyDebtCeiling(address,IERC20,uint256) (contracts/v2/TreasuryReservesVault.sol#242-255)\n\t- TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319)\n\t- TreasuryReservesVault.strategyBalanceSheet(address) (contracts/v2/TreasuryReservesVault.sol#447-467)\n\t- TreasuryReservesVault.strategyTokenCredits (contracts/v2/TreasuryReservesVault.sol#78)\n", + "markdown": "Reentrancy in [TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L677-L709):\n\tExternal calls:\n\t- [_burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount)](contracts/v2/TreasuryReservesVault.sol#L688)\n\tState variables written after the call(s):\n\t- [_tokenCredits[token] = _creditBalance](contracts/v2/TreasuryReservesVault.sol#L705)\n\t[TreasuryReservesVault.strategyTokenCredits](contracts/v2/TreasuryReservesVault.sol#L78) can be used in cross function reentrancies:\n\t- [TreasuryReservesVault._availableForStrategyToBorrow(address,ITreasuryReservesVault.StrategyConfig,IERC20,uint256)](contracts/v2/TreasuryReservesVault.sol#L533-L551)\n\t- [TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L677-L709)\n\t- [TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L638-L670)\n\t- [TreasuryReservesVault.setStrategyDebtCeiling(address,IERC20,uint256)](contracts/v2/TreasuryReservesVault.sol#L242-L255)\n\t- [TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319)\n\t- [TreasuryReservesVault.strategyBalanceSheet(address)](contracts/v2/TreasuryReservesVault.sol#L447-L467)\n\t- [TreasuryReservesVault.strategyTokenCredits](contracts/v2/TreasuryReservesVault.sol#L78)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L677-L709", + "id": "c8932bc3a4a8bcb7213dd16df3325de16b2cfe251691839c0d5db322cdde8cc6", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_mintDToken", + "source_mapping": { + "start": 28533, + "length": 1205, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" + } + }, + { + "type": "node", + "name": "tokenConfig.dToken.mint(strategy,_newDebt)", + "source_mapping": { + "start": 29294, + "length": 43, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [657], + "starting_column": 13, + "ending_column": 56 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_mintDToken", + "source_mapping": { + "start": 28533, + "length": 1205, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 16245, - "length": 25, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 402 - ], - "starting_column": 13, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 867, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31745, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "daiToken.safeIncreaseAllowance(_trv,type()(uint256).max)", + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "_tokenCredits[token] = _creditBalance = 0", + "source_mapping": { + "start": 29387, + "length": 41, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [660], + "starting_column": 13, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_mintDToken", + "source_mapping": { + "start": 28533, + "length": 1205, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 16284, - "length": 55, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 403 - ], - "starting_column": 13, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 867, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31745, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "TlcStrategySet(newTlcStrategy,_trv)", + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "strategyTokenCredits" + } + } + ], + "description": "Reentrancy in TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#638-670):\n\tExternal calls:\n\t- tokenConfig.dToken.mint(strategy,_newDebt) (contracts/v2/TreasuryReservesVault.sol#657)\n\tState variables written after the call(s):\n\t- _tokenCredits[token] = _creditBalance = 0 (contracts/v2/TreasuryReservesVault.sol#660)\n\tTreasuryReservesVault.strategyTokenCredits (contracts/v2/TreasuryReservesVault.sol#78) can be used in cross function reentrancies:\n\t- TreasuryReservesVault._availableForStrategyToBorrow(address,ITreasuryReservesVault.StrategyConfig,IERC20,uint256) (contracts/v2/TreasuryReservesVault.sol#533-551)\n\t- TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#677-709)\n\t- TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#638-670)\n\t- TreasuryReservesVault.setStrategyDebtCeiling(address,IERC20,uint256) (contracts/v2/TreasuryReservesVault.sol#242-255)\n\t- TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319)\n\t- TreasuryReservesVault.strategyBalanceSheet(address) (contracts/v2/TreasuryReservesVault.sol#447-467)\n\t- TreasuryReservesVault.strategyTokenCredits (contracts/v2/TreasuryReservesVault.sol#78)\n", + "markdown": "Reentrancy in [TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L638-L670):\n\tExternal calls:\n\t- [tokenConfig.dToken.mint(strategy,_newDebt)](contracts/v2/TreasuryReservesVault.sol#L657)\n\tState variables written after the call(s):\n\t- [_tokenCredits[token] = _creditBalance = 0](contracts/v2/TreasuryReservesVault.sol#L660)\n\t[TreasuryReservesVault.strategyTokenCredits](contracts/v2/TreasuryReservesVault.sol#L78) can be used in cross function reentrancies:\n\t- [TreasuryReservesVault._availableForStrategyToBorrow(address,ITreasuryReservesVault.StrategyConfig,IERC20,uint256)](contracts/v2/TreasuryReservesVault.sol#L533-L551)\n\t- [TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L677-L709)\n\t- [TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L638-L670)\n\t- [TreasuryReservesVault.setStrategyDebtCeiling(address,IERC20,uint256)](contracts/v2/TreasuryReservesVault.sol#L242-L255)\n\t- [TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319)\n\t- [TreasuryReservesVault.strategyBalanceSheet(address)](contracts/v2/TreasuryReservesVault.sol#L447-L467)\n\t- [TreasuryReservesVault.strategyTokenCredits](contracts/v2/TreasuryReservesVault.sol#L78)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L638-L670", + "id": "0ce7ad9bcbc81412efd61c0340786d494f3510ea2cdeb81edb9c0103d00c0d0c", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "removeCollateral", + "source_mapping": { + "start": 6498, + "length": 1031, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, + 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, + 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, + 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeCollateral(uint128,address)" + } + }, + { + "type": "node", + "name": "circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)", + "source_mapping": { + "start": 7012, + "length": 118, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [173, 174, 175, 176, 177], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeCollateral", + "source_mapping": { + "start": 6498, + "length": 1031, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeCollateral(uint128,address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "_accountData.collateral = _collateral - amount", + "source_mapping": { + "start": 7229, + "length": 46, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [180], + "starting_column": 9, + "ending_column": 55 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeCollateral", + "source_mapping": { + "start": 6498, + "length": 1031, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeCollateral(uint128,address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "allAccountsData" + } + } + ], + "description": "Reentrancy in TempleLineOfCredit.removeCollateral(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#166-190):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#173-177)\n\tState variables written after the call(s):\n\t- _accountData.collateral = _collateral - amount (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#180)\n\tTempleLineOfCredit.allAccountsData (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#68) can be used in cross function reentrancies:\n\t- TempleLineOfCredit.accountData(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#539-545)\n\t- TempleLineOfCredit.accountPosition(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#483-502)\n\t- TempleLineOfCredit.addCollateral(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#145-159)\n\t- TempleLineOfCredit.batchLiquidate(address[]) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#318-359)\n\t- TempleLineOfCredit.borrow(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#205-242)\n\t- TempleLineOfCredit.computeLiquidity(address[]) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#522-534)\n\t- TempleLineOfCredit.removeCollateral(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#166-190)\n\t- TempleLineOfCredit.repay(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#253-280)\n\t- TempleLineOfCredit.repayAll(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#287-305)\n", + "markdown": "Reentrancy in [TempleLineOfCredit.removeCollateral(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L173-L177)\n\tState variables written after the call(s):\n\t- [_accountData.collateral = _collateral - amount](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L180)\n\t[TempleLineOfCredit.allAccountsData](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L68) can be used in cross function reentrancies:\n\t- [TempleLineOfCredit.accountData(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L539-L545)\n\t- [TempleLineOfCredit.accountPosition(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L483-L502)\n\t- [TempleLineOfCredit.addCollateral(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L145-L159)\n\t- [TempleLineOfCredit.batchLiquidate(address[])](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L318-L359)\n\t- [TempleLineOfCredit.borrow(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L205-L242)\n\t- [TempleLineOfCredit.computeLiquidity(address[])](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L522-L534)\n\t- [TempleLineOfCredit.removeCollateral(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190)\n\t- [TempleLineOfCredit.repay(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L253-L280)\n\t- [TempleLineOfCredit.repayAll(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L287-L305)\n", + "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190", + "id": "dffbe20bcc1c2f91394c175a10bd84f3964c2b4101e0079bbddcef08bf456d02", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "setTlcStrategy", + "source_mapping": { + "start": 15688, + "length": 819, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, + 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, + 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, + 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTlcStrategy(address)" + } + }, + { + "type": "node", + "name": "daiToken.approve(previousTrv,0)", + "source_mapping": { + "start": 16002, + "length": 32, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [394], + "starting_column": 13, + "ending_column": 45 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTlcStrategy", + "source_mapping": { + "start": 15688, + "length": 819, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTlcStrategy(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "treasuryReservesVault = ITreasuryReservesVault(_trv)", + "source_mapping": { + "start": 16124, + "length": 52, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [398], + "starting_column": 9, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTlcStrategy", + "source_mapping": { + "start": 15688, + "length": 819, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTlcStrategy(address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "treasuryReservesVault" + } + } + ], + "description": "Reentrancy in TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-409):\n\tExternal calls:\n\t- daiToken.approve(previousTrv,0) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#394)\n\tState variables written after the call(s):\n\t- treasuryReservesVault = ITreasuryReservesVault(_trv) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#398)\n\tTempleLineOfCredit.treasuryReservesVault (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#53) can be used in cross function reentrancies:\n\t- TempleLineOfCredit._initDebtTokenCache(TempleLineOfCredit.DebtTokenCache) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#618-657)\n\t- TempleLineOfCredit._repayToken(TempleLineOfCredit.DebtTokenCache,uint128,address,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#704-720)\n\t- TempleLineOfCredit.batchLiquidate(address[]) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#318-359)\n\t- TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-409)\n\t- TempleLineOfCredit.treasuryReservesVault (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#53)\n", + "markdown": "Reentrancy in [TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L409):\n\tExternal calls:\n\t- [daiToken.approve(previousTrv,0)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)\n\tState variables written after the call(s):\n\t- [treasuryReservesVault = ITreasuryReservesVault(_trv)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L398)\n\t[TempleLineOfCredit.treasuryReservesVault](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L53) can be used in cross function reentrancies:\n\t- [TempleLineOfCredit._initDebtTokenCache(TempleLineOfCredit.DebtTokenCache)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L618-L657)\n\t- [TempleLineOfCredit._repayToken(TempleLineOfCredit.DebtTokenCache,uint128,address,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L704-L720)\n\t- [TempleLineOfCredit.batchLiquidate(address[])](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L318-L359)\n\t- [TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L409)\n\t- [TempleLineOfCredit.treasuryReservesVault](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L53)\n", + "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L409", + "id": "2135b52f35db6cda9505a21d3dca08e0bc753e863d4701970ef206e54e163bb1", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "setTokenVault", + "source_mapping": { + "start": 7960, + "length": 628, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTokenVault(address)" + } + }, + { + "type": "node", + "name": "protocolToken.approve(previousVault,0)", + "source_mapping": { + "start": 8228, + "length": 39, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [195], + "starting_column": 13, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTokenVault", + "source_mapping": { + "start": 7960, + "length": 628, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTokenVault(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "quoteToken.approve(previousVault,0)", + "source_mapping": { + "start": 8281, + "length": 36, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [196], + "starting_column": 13, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTokenVault", + "source_mapping": { + "start": 7960, + "length": 628, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTokenVault(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "tokenVault = IRamosTokenVault(vault)", + "source_mapping": { + "start": 8338, + "length": 36, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [199], + "starting_column": 9, + "ending_column": 45 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTokenVault", + "source_mapping": { + "start": 7960, + "length": 628, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTokenVault(address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "tokenVault" + } + } + ], + "description": "Reentrancy in Ramos.setTokenVault(address) (contracts/amo/Ramos.sol#189-207):\n\tExternal calls:\n\t- protocolToken.approve(previousVault,0) (contracts/amo/Ramos.sol#195)\n\t- quoteToken.approve(previousVault,0) (contracts/amo/Ramos.sol#196)\n\tState variables written after the call(s):\n\t- tokenVault = IRamosTokenVault(vault) (contracts/amo/Ramos.sol#199)\n\tRamos.tokenVault (contracts/amo/Ramos.sol#78) can be used in cross function reentrancies:\n\t- Ramos.addLiquidity(IBalancerVault.JoinPoolRequest) (contracts/amo/Ramos.sol#462-511)\n\t- Ramos.rebalanceDownExit(uint256,uint256) (contracts/amo/Ramos.sol#332-362)\n\t- Ramos.rebalanceDownJoin(uint256,uint256) (contracts/amo/Ramos.sol#419-453)\n\t- Ramos.rebalanceUpExit(uint256,uint256) (contracts/amo/Ramos.sol#288-320)\n\t- Ramos.rebalanceUpJoin(uint256,uint256) (contracts/amo/Ramos.sol#374-407)\n\t- Ramos.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256) (contracts/amo/Ramos.sol#520-557)\n\t- Ramos.setTokenVault(address) (contracts/amo/Ramos.sol#189-207)\n\t- Ramos.tokenVault (contracts/amo/Ramos.sol#78)\n", + "markdown": "Reentrancy in [Ramos.setTokenVault(address)](contracts/amo/Ramos.sol#L189-L207):\n\tExternal calls:\n\t- [protocolToken.approve(previousVault,0)](contracts/amo/Ramos.sol#L195)\n\t- [quoteToken.approve(previousVault,0)](contracts/amo/Ramos.sol#L196)\n\tState variables written after the call(s):\n\t- [tokenVault = IRamosTokenVault(vault)](contracts/amo/Ramos.sol#L199)\n\t[Ramos.tokenVault](contracts/amo/Ramos.sol#L78) can be used in cross function reentrancies:\n\t- [Ramos.addLiquidity(IBalancerVault.JoinPoolRequest)](contracts/amo/Ramos.sol#L462-L511)\n\t- [Ramos.rebalanceDownExit(uint256,uint256)](contracts/amo/Ramos.sol#L332-L362)\n\t- [Ramos.rebalanceDownJoin(uint256,uint256)](contracts/amo/Ramos.sol#L419-L453)\n\t- [Ramos.rebalanceUpExit(uint256,uint256)](contracts/amo/Ramos.sol#L288-L320)\n\t- [Ramos.rebalanceUpJoin(uint256,uint256)](contracts/amo/Ramos.sol#L374-L407)\n\t- [Ramos.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)](contracts/amo/Ramos.sol#L520-L557)\n\t- [Ramos.setTokenVault(address)](contracts/amo/Ramos.sol#L189-L207)\n\t- [Ramos.tokenVault](contracts/amo/Ramos.sol#L78)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L189-L207", + "id": "48eaffc570a3dddf542c7c007ea26914107df0d0e389c27773f3315513b8c896", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "shutdown", + "source_mapping": { + "start": 11822, + "length": 1632, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "shutdown(address)" + } + }, + { + "type": "node", + "name": "_outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy)", + "source_mapping": { + "start": 12499, + "length": 64, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [296], + "starting_column": 13, + "ending_column": 77 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "shutdown", + "source_mapping": { + "start": 11822, + "length": 1632, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 16360, - "length": 41, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 406 - ], - "starting_column": 9, - "ending_column": 50 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 867, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31745, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "shutdown(address)" } - ], - "description": "Reentrancy in TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-410):\n\tExternal calls:\n\t- daiToken.approve(previousTrv,0) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#394)\n\t- daiToken.approve(_trv,0) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#402)\n\t- daiToken.safeIncreaseAllowance(_trv,type()(uint256).max) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#403)\n\tEvent emitted after the call(s):\n\t- TlcStrategySet(newTlcStrategy,_trv) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#406)\n", - "markdown": "Reentrancy in [TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410):\n\tExternal calls:\n\t- [daiToken.approve(previousTrv,0)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)\n\t- [daiToken.approve(_trv,0)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L402)\n\t- [daiToken.safeIncreaseAllowance(_trv,type()(uint256).max)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L403)\n\tEvent emitted after the call(s):\n\t- [TlcStrategySet(newTlcStrategy,_trv)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L406)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410", - "id": "cfa890b99859a2b8b2e6b3888d77cf9b32c5168696c3c6327debc3ae48605370", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "trvWithdraw", + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "delete strategies[strategy]", + "source_mapping": { + "start": 13381, + "length": 27, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [317], + "starting_column": 9, + "ending_column": 36 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "shutdown", + "source_mapping": { + "start": 11822, + "length": 1632, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 10617, - "length": 947, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "trvWithdraw(uint256)" - } - }, - { - "type": "node", - "name": "(daiAvailable,chi,sharesAvailable) = _checkpointDaiBalance()", - "source_mapping": { - "start": 11067, - "length": 86, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 265 - ], - "starting_column": 9, - "ending_column": 95 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "trvWithdraw", - "source_mapping": { - "start": 10617, - "length": 947, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "trvWithdraw(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5623, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5502, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAmount,requestedAmount)", - "source_mapping": { - "start": 11422, - "length": 45, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 274 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "trvWithdraw", - "source_mapping": { - "start": 10617, - "length": 947, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "trvWithdraw(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "pot.exit(sharesAmount)", - "source_mapping": { - "start": 11654, - "length": 22, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 280 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "daiJoin.exit(address(this),daiAmount)", - "source_mapping": { - "start": 11686, - "length": 38, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 281 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiWithdrawn(daiAmount)", - "source_mapping": { - "start": 11734, - "length": 28, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 282 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAmount,requestedAmount)", - "source_mapping": { - "start": 11422, - "length": 45, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 274 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "trvWithdraw", - "source_mapping": { - "start": 10617, - "length": 947, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "trvWithdraw(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "shutdown(address)" } - ], - "description": "Reentrancy in DsrBaseStrategy.trvWithdraw(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#258-277):\n\tExternal calls:\n\t- (daiAvailable,chi,sharesAvailable) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#265)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#143)\n\t- _dsrWithdrawal(sharesAmount,requestedAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#274)\n\t\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\t\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#282)\n\t\t- _dsrWithdrawal(sharesAmount,requestedAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#274)\n", - "markdown": "Reentrancy in [DsrBaseStrategy.trvWithdraw(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L258-L277):\n\tExternal calls:\n\t- [(daiAvailable,chi,sharesAvailable) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L265)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L143)\n\t- [_dsrWithdrawal(sharesAmount,requestedAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L274)\n\t\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\t\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L282)\n\t\t- [_dsrWithdrawal(sharesAmount,requestedAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L274)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L258-L277", - "id": "401b0952f469a059bfad9dd68615d80d5f55390bdc4e739ea04ec726f1457acb", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawAndRepay", - "source_mapping": { - "start": 8566, - "length": 786, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepay(uint256)" - } - }, - { - "type": "node", - "name": "(daiAvailable,chi) = _checkpointDaiBalance()", - "source_mapping": { - "start": 8747, - "length": 63, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 218 - ], - "starting_column": 9, - "ending_column": 72 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndRepay", - "source_mapping": { - "start": 8566, - "length": 786, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepay(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5623, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5502, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAmount,withdrawalAmount)", - "source_mapping": { - "start": 9082, - "length": 46, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 223 - ], - "starting_column": 9, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndRepay", - "source_mapping": { - "start": 8566, - "length": 786, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepay(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "pot.exit(sharesAmount)", - "source_mapping": { - "start": 11654, - "length": 22, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 280 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "daiJoin.exit(address(this),daiAmount)", - "source_mapping": { - "start": 11686, - "length": 38, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 281 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiWithdrawn(daiAmount)", - "source_mapping": { - "start": 11734, - "length": 28, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 282 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAmount,withdrawalAmount)", - "source_mapping": { - "start": 9082, - "length": 46, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 223 - ], - "starting_column": 9, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndRepay", - "source_mapping": { - "start": 8566, - "length": 786, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepay(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "strategies" + } + } + ], + "description": "Reentrancy in TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319):\n\tExternal calls:\n\t- _outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy) (contracts/v2/TreasuryReservesVault.sol#296)\n\tState variables written after the call(s):\n\t- delete strategies[strategy] (contracts/v2/TreasuryReservesVault.sol#317)\n\tTreasuryReservesVault.strategies (contracts/v2/TreasuryReservesVault.sol#55) can be used in cross function reentrancies:\n\t- TreasuryReservesVault._getStrategyConfig(address) (contracts/v2/TreasuryReservesVault.sol#711-714)\n\t- TreasuryReservesVault._withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256) (contracts/v2/TreasuryReservesVault.sol#582-632)\n\t- TreasuryReservesVault.addStrategy(address,int256,ITempleStrategy.AssetBalance[]) (contracts/v2/TreasuryReservesVault.sol#173-201)\n\t- TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319)\n\t- TreasuryReservesVault.strategies (contracts/v2/TreasuryReservesVault.sol#55)\n", + "markdown": "Reentrancy in [TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319):\n\tExternal calls:\n\t- [_outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy)](contracts/v2/TreasuryReservesVault.sol#L296)\n\tState variables written after the call(s):\n\t- [delete strategies[strategy]](contracts/v2/TreasuryReservesVault.sol#L317)\n\t[TreasuryReservesVault.strategies](contracts/v2/TreasuryReservesVault.sol#L55) can be used in cross function reentrancies:\n\t- [TreasuryReservesVault._getStrategyConfig(address)](contracts/v2/TreasuryReservesVault.sol#L711-L714)\n\t- [TreasuryReservesVault._withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256)](contracts/v2/TreasuryReservesVault.sol#L582-L632)\n\t- [TreasuryReservesVault.addStrategy(address,int256,ITempleStrategy.AssetBalance[])](contracts/v2/TreasuryReservesVault.sol#L173-L201)\n\t- [TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319)\n\t- [TreasuryReservesVault.strategies](contracts/v2/TreasuryReservesVault.sol#L55)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L283-L319", + "id": "29da7db88824f300cbfeae877c2e6c080f8344d5012c1ba25820228cb3feb89a", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in DsrBaseStrategy.withdrawAndRepay(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#215-228):\n\tExternal calls:\n\t- (daiAvailable,chi) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#218)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#143)\n\t- _dsrWithdrawal(sharesAmount,withdrawalAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#223)\n\t\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\t\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#282)\n\t\t- _dsrWithdrawal(sharesAmount,withdrawalAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#223)\n", - "markdown": "Reentrancy in [DsrBaseStrategy.withdrawAndRepay(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L215-L228):\n\tExternal calls:\n\t- [(daiAvailable,chi) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L218)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L143)\n\t- [_dsrWithdrawal(sharesAmount,withdrawalAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L223)\n\t\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\t\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L282)\n\t\t- [_dsrWithdrawal(sharesAmount,withdrawalAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L223)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L215-L228", - "id": "c7edede72a1a27d7719d096f09d6f9cccb736ab62247491688f54c0b49ec00d5", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawAndRepayAll", - "source_mapping": { - "start": 9469, - "length": 465, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepayAll()" - } - }, - { - "type": "node", - "name": "(daiAvailable,sharesAvailable) = _checkpointDaiBalance()", - "source_mapping": { - "start": 9556, - "length": 74, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 234 - ], - "starting_column": 9, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndRepayAll", - "source_mapping": { - "start": 9469, - "length": 465, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepayAll()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5623, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5502, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAvailable,daiAvailable)", - "source_mapping": { - "start": 9640, - "length": 45, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 235 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndRepayAll", - "source_mapping": { - "start": 9469, - "length": 465, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepayAll()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "pot.exit(sharesAmount)", - "source_mapping": { - "start": 11654, - "length": 22, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 280 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "daiJoin.exit(address(this),daiAmount)", - "source_mapping": { - "start": 11686, - "length": 38, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 281 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiWithdrawn(daiAmount)", - "source_mapping": { - "start": 11734, - "length": 28, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 282 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11570, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279, - 280, - 281, - 282, - 283 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAvailable,daiAvailable)", - "source_mapping": { - "start": 9640, - "length": 45, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 235 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndRepayAll", - "source_mapping": { - "start": 9469, - "length": 465, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepayAll()" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "burn(address)" + } + }, + { + "type": "node", + "name": "_safeTransfer(_token0,to,amount0)", + "source_mapping": { + "start": 6213, + "length": 35, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [131], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" } - ], - "description": "Reentrancy in DsrBaseStrategy.withdrawAndRepayAll() (contracts/v2/strategies/DsrBaseStrategy.sol#233-241):\n\tExternal calls:\n\t- (daiAvailable,sharesAvailable) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#234)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#143)\n\t- _dsrWithdrawal(sharesAvailable,daiAvailable) (contracts/v2/strategies/DsrBaseStrategy.sol#235)\n\t\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\t\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#282)\n\t\t- _dsrWithdrawal(sharesAvailable,daiAvailable) (contracts/v2/strategies/DsrBaseStrategy.sol#235)\n", - "markdown": "Reentrancy in [DsrBaseStrategy.withdrawAndRepayAll()](contracts/v2/strategies/DsrBaseStrategy.sol#L233-L241):\n\tExternal calls:\n\t- [(daiAvailable,sharesAvailable) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L234)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L143)\n\t- [_dsrWithdrawal(sharesAvailable,daiAvailable)](contracts/v2/strategies/DsrBaseStrategy.sol#L235)\n\t\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\t\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L282)\n\t\t- [_dsrWithdrawal(sharesAvailable,daiAvailable)](contracts/v2/strategies/DsrBaseStrategy.sol#L235)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L233-L241", - "id": "fe23180575949413b7940f9b70be497cb6bdea47060c90d2a79fa4ab6132d5e4", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 8613, - "length": 355, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,address,uint256)" - } - }, - { - "type": "node", - "name": "templeExposureToken.redeemAmount(_amount,_to)", - "source_mapping": { - "start": 8873, - "length": 46, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 228 - ], - "starting_column": 9, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 8613, - "length": 355, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Withdraw(_account,_amount)", - "source_mapping": { - "start": 8929, - "length": 32, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 229 - ], - "starting_column": 9, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 8613, - "length": 355, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" } - ], - "description": "Reentrancy in Vault.withdrawFor(address,address,uint256) (contracts/core/Vault.sol#221-230):\n\tExternal calls:\n\t- templeExposureToken.redeemAmount(_amount,_to) (contracts/core/Vault.sol#228)\n\tEvent emitted after the call(s):\n\t- Withdraw(_account,_amount) (contracts/core/Vault.sol#229)\n", - "markdown": "Reentrancy in [Vault.withdrawFor(address,address,uint256)](contracts/core/Vault.sol#L221-L230):\n\tExternal calls:\n\t- [templeExposureToken.redeemAmount(_amount,_to)](contracts/core/Vault.sol#L228)\n\tEvent emitted after the call(s):\n\t- [Withdraw(_account,_amount)](contracts/core/Vault.sol#L229)\n", - "first_markdown_element": "contracts/core/Vault.sol#L221-L230", - "id": "6fd4370ebad3ac9fb829c991eefe060da1a6b877d6cd27d4ce1a036b71cbf60f", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 4020, - "length": 543, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)" - } - }, - { - "type": "node", - "name": "require(bool,string)(block.timestamp <= deadline,Vault: expired deadline)", - "source_mapping": { - "start": 4138, - "length": 63, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 102 - ], - "starting_column": 9, - "ending_column": 72 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 4020, - "length": 543, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_safeTransfer(_token1,to,amount1)", + "source_mapping": { + "start": 6258, + "length": 35, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [132], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" } - ], - "description": "Vault.withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32) (contracts/core/Vault.sol#101-111) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(block.timestamp <= deadline,Vault: expired deadline) (contracts/core/Vault.sol#102)\n", - "markdown": "[Vault.withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)](contracts/core/Vault.sol#L101-L111) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(block.timestamp <= deadline,Vault: expired deadline)](contracts/core/Vault.sol#L102)\n", - "first_markdown_element": "contracts/core/Vault.sol#L101-L111", - "id": "bb9efcff90e4bb74d66875557be4f6b4a954701b6fc59ab59a6bc0ba37184ee5", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5447, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - }, - { - "type": "node", - "name": "block.timestamp < firstPeriodStartTimestamp", - "source_mapping": { - "start": 5547, - "length": 43, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 142 - ], - "starting_column": 13, - "ending_column": 56 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5447, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - } - } - }, - { - "type": "node", - "name": "inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp", - "source_mapping": { - "start": 5871, - "length": 138, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 148 - ], - "starting_column": 9, - "ending_column": 147 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5447, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1216, - "length": 7882, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" } - ], - "description": "Vault.inEnterExitWindow() (contracts/core/Vault.sol#141-149) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp < firstPeriodStartTimestamp (contracts/core/Vault.sol#142)\n\t- inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp (contracts/core/Vault.sol#148)\n", - "markdown": "[Vault.inEnterExitWindow()](contracts/core/Vault.sol#L141-L149) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp < firstPeriodStartTimestamp](contracts/core/Vault.sol#L142)\n\t- [inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp](contracts/core/Vault.sol#L148)\n", - "first_markdown_element": "contracts/core/Vault.sol#L141-L149", - "id": "773d81e019f7b3cd3b0ac4b32328669f6effcc4564c50e03f49f7061139ce5e7", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "latestDsrBalance", - "source_mapping": { - "start": 4986, - "length": 510, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "latestDsrBalance()" - } - }, - { - "type": "node", - "name": "(block.timestamp > rho)", - "source_mapping": { - "start": 5329, - "length": 109, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 137 - ], - "starting_column": 9, - "ending_column": 118 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "latestDsrBalance", - "source_mapping": { - "start": 4986, - "length": 510, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "latestDsrBalance()" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "source_mapping": { + "start": 6426, + "length": 49, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [136], + "starting_column": 9, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" } - ], - "description": "DsrBaseStrategy.latestDsrBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#130-139) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- (block.timestamp > rho) (contracts/v2/strategies/DsrBaseStrategy.sol#137)\n", - "markdown": "[DsrBaseStrategy.latestDsrBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L130-L139) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [(block.timestamp > rho)](contracts/v2/strategies/DsrBaseStrategy.sol#L137)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L130-L139", - "id": "e3cba99a159cdc8452b1f83625f58f1d175c9b0f107b589eee7690e16f8d25e8", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5502, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - }, - { - "type": "node", - "name": "(block.timestamp > pot.rho())", - "source_mapping": { - "start": 5623, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5502, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11801, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "blockTimestampLast" + } + }, + { + "type": "node", + "name": "blockTimestampLast = blockTimestamp", + "source_mapping": { + "start": 3873, + "length": 35, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" } - ], - "description": "DsrBaseStrategy._checkpointChi() (contracts/v2/strategies/DsrBaseStrategy.sol#141-144) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- (block.timestamp > pot.rho()) (contracts/v2/strategies/DsrBaseStrategy.sol#143)\n", - "markdown": "[DsrBaseStrategy._checkpointChi()](contracts/v2/strategies/DsrBaseStrategy.sol#L141-L144) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [(block.timestamp > pot.rho())](contracts/v2/strategies/DsrBaseStrategy.sol#L143)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L141-L144", - "id": "8064f6bfe9596d2d52a5dcb31598ebda9f9336192395ad9e5910f3706548efdd", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "blockTimestampLast" + } + }, + { + "type": "node", + "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "source_mapping": { + "start": 6426, + "length": 49, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [136], + "starting_column": 9, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { "type": "contract", - "name": "TempleERC20Token", - "source_mapping": { - "start": 425, - "length": 634, - "filename_relative": "contracts/core/TempleERC20Token.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/core/TempleERC20Token.sol", - "filename_short": "contracts/core/TempleERC20Token.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "reserve0" + } + }, + { + "type": "node", + "name": "reserve0 = uint112(balance0)", + "source_mapping": { + "start": 3797, + "length": 28, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [89], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { "type": "contract", - "name": "ITempleERC20Token", - "source_mapping": { - "start": 195, - "length": 611, - "filename_relative": "contracts/interfaces/core/ITempleERC20Token.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/interfaces/core/ITempleERC20Token.sol", - "filename_short": "contracts/interfaces/core/ITempleERC20Token.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" } - ], - "description": "TempleERC20Token (contracts/core/TempleERC20Token.sol#11-31) should inherit from ITempleERC20Token (contracts/interfaces/core/ITempleERC20Token.sol#7-30)\n", - "markdown": "[TempleERC20Token](contracts/core/TempleERC20Token.sol#L11-L31) should inherit from [ITempleERC20Token](contracts/interfaces/core/ITempleERC20Token.sol#L7-L30)\n", - "first_markdown_element": "contracts/core/TempleERC20Token.sol#L11-L31", - "id": "1012fc2683a6f016ab688afd7c9d40e0a123132cb6ea9676b420d4c39ed23cd9", - "check": "missing-inheritance", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "reserve0" + } + }, + { + "type": "node", + "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "source_mapping": { + "start": 6426, + "length": 49, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [136], + "starting_column": 9, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { "type": "contract", - "name": "OGTemple", - "source_mapping": { - "start": 537, - "length": 225, - "filename_relative": "contracts/deprecated/OGTemple.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/deprecated/OGTemple.sol", - "filename_short": "contracts/deprecated/OGTemple.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "reserve1" + } + }, + { + "type": "node", + "name": "reserve1 = uint112(balance1)", + "source_mapping": { + "start": 3835, + "length": 28, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [90], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { "type": "contract", - "name": "ITempleERC20Token", - "source_mapping": { - "start": 195, - "length": 611, - "filename_relative": "contracts/interfaces/core/ITempleERC20Token.sol", - "filename_absolute": "/Users/pb/code/templedao/mar_2024/upgrade_oz/temple/protocol/contracts/interfaces/core/ITempleERC20Token.sol", - "filename_short": "contracts/interfaces/core/ITempleERC20Token.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" } - ], - "description": "OGTemple (contracts/deprecated/OGTemple.sol#16-23) should inherit from ITempleERC20Token (contracts/interfaces/core/ITempleERC20Token.sol#7-30)\n", - "markdown": "[OGTemple](contracts/deprecated/OGTemple.sol#L16-L23) should inherit from [ITempleERC20Token](contracts/interfaces/core/ITempleERC20Token.sol#L7-L30)\n", - "first_markdown_element": "contracts/deprecated/OGTemple.sol#L16-L23", - "id": "d796780be51036fc47b271e699d52424bbe664783a4a7b47c3984deb2cce03bb", - "check": "missing-inheritance", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7809, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 195, - 196, - 197, - 198, - 199 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - }, - { - "type": "node", - "name": "treasuryReservesVault.borrow(daiToken,amount,address(this))", - "source_mapping": { - "start": 7958, - "length": 61, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 197 - ], - "starting_column": 9, - "ending_column": 70 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7809, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 195, - 196, - 197, - 198, - 199 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_dsrDeposit(amount)", - "source_mapping": { - "start": 8029, - "length": 19, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 198 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7809, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 195, - 196, - 197, - 198, - 199 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "daiJoin.join(address(this),amount)", - "source_mapping": { - "start": 8342, - "length": 35, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 207 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8061, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5566, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 142 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5445, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "pot.join(shares)", - "source_mapping": { - "start": 8387, - "length": 16, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 208 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8061, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiDeposited(amount)", - "source_mapping": { - "start": 8307, - "length": 25, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 206 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8061, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_dsrDeposit(amount)", - "source_mapping": { - "start": 8029, - "length": 19, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 198 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7809, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 195, - 196, - 197, - 198, - 199 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "reserve1" + } + } + ], + "description": "Reentrancy in TempleUniswapV2Pair.burn(address) (contracts/amm/TempleUniswapV2Pair.sol#118-138):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0) (contracts/amm/TempleUniswapV2Pair.sol#131)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- _safeTransfer(_token1,to,amount1) (contracts/amm/TempleUniswapV2Pair.sol#132)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\tState variables written after the call(s):\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#136)\n\t\t- blockTimestampLast = blockTimestamp (contracts/amm/TempleUniswapV2Pair.sol#91)\n\tTempleUniswapV2Pair.blockTimestampLast (contracts/amm/TempleUniswapV2Pair.sol#25) can be used in cross function reentrancies:\n\t- TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93)\n\t- TempleUniswapV2Pair.getReserves() (contracts/amm/TempleUniswapV2Pair.sol#43-47)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#136)\n\t\t- reserve0 = uint112(balance0) (contracts/amm/TempleUniswapV2Pair.sol#89)\n\tTempleUniswapV2Pair.reserve0 (contracts/amm/TempleUniswapV2Pair.sol#23) can be used in cross function reentrancies:\n\t- TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93)\n\t- TempleUniswapV2Pair.getReserves() (contracts/amm/TempleUniswapV2Pair.sol#43-47)\n\t- TempleUniswapV2Pair.skim(address) (contracts/amm/TempleUniswapV2Pair.sol#173-178)\n\t- TempleUniswapV2Pair.sync() (contracts/amm/TempleUniswapV2Pair.sol#181-183)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#136)\n\t\t- reserve1 = uint112(balance1) (contracts/amm/TempleUniswapV2Pair.sol#90)\n\tTempleUniswapV2Pair.reserve1 (contracts/amm/TempleUniswapV2Pair.sol#24) can be used in cross function reentrancies:\n\t- TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93)\n\t- TempleUniswapV2Pair.getReserves() (contracts/amm/TempleUniswapV2Pair.sol#43-47)\n\t- TempleUniswapV2Pair.skim(address) (contracts/amm/TempleUniswapV2Pair.sol#173-178)\n\t- TempleUniswapV2Pair.sync() (contracts/amm/TempleUniswapV2Pair.sol#181-183)\n", + "markdown": "Reentrancy in [TempleUniswapV2Pair.burn(address)](contracts/amm/TempleUniswapV2Pair.sol#L118-L138):\n\tExternal calls:\n\t- [_safeTransfer(_token0,to,amount0)](contracts/amm/TempleUniswapV2Pair.sol#L131)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [_safeTransfer(_token1,to,amount1)](contracts/amm/TempleUniswapV2Pair.sol#L132)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\tState variables written after the call(s):\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L136)\n\t\t- [blockTimestampLast = blockTimestamp](contracts/amm/TempleUniswapV2Pair.sol#L91)\n\t[TempleUniswapV2Pair.blockTimestampLast](contracts/amm/TempleUniswapV2Pair.sol#L25) can be used in cross function reentrancies:\n\t- [TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93)\n\t- [TempleUniswapV2Pair.getReserves()](contracts/amm/TempleUniswapV2Pair.sol#L43-L47)\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L136)\n\t\t- [reserve0 = uint112(balance0)](contracts/amm/TempleUniswapV2Pair.sol#L89)\n\t[TempleUniswapV2Pair.reserve0](contracts/amm/TempleUniswapV2Pair.sol#L23) can be used in cross function reentrancies:\n\t- [TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93)\n\t- [TempleUniswapV2Pair.getReserves()](contracts/amm/TempleUniswapV2Pair.sol#L43-L47)\n\t- [TempleUniswapV2Pair.skim(address)](contracts/amm/TempleUniswapV2Pair.sol#L173-L178)\n\t- [TempleUniswapV2Pair.sync()](contracts/amm/TempleUniswapV2Pair.sol#L181-L183)\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L136)\n\t\t- [reserve1 = uint112(balance1)](contracts/amm/TempleUniswapV2Pair.sol#L90)\n\t[TempleUniswapV2Pair.reserve1](contracts/amm/TempleUniswapV2Pair.sol#L24) can be used in cross function reentrancies:\n\t- [TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93)\n\t- [TempleUniswapV2Pair.getReserves()](contracts/amm/TempleUniswapV2Pair.sol#L43-L47)\n\t- [TempleUniswapV2Pair.skim(address)](contracts/amm/TempleUniswapV2Pair.sol#L173-L178)\n\t- [TempleUniswapV2Pair.sync()](contracts/amm/TempleUniswapV2Pair.sol#L181-L183)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L118-L138", + "id": "0379a89cc8645c2b5e10653eb1e7b3fe6480ded71ea4fc2c34965051d126019a", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in DsrBaseStrategy.borrowAndDeposit(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#195-199):\n\tExternal calls:\n\t- treasuryReservesVault.borrow(daiToken,amount,address(this)) (contracts/v2/strategies/DsrBaseStrategy.sol#197)\n\t- _dsrDeposit(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#198)\n\t\t- daiJoin.join(address(this),amount) (contracts/v2/strategies/DsrBaseStrategy.sol#207)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\t\t- pot.join(shares) (contracts/v2/strategies/DsrBaseStrategy.sol#208)\n\tEvent emitted after the call(s):\n\t- DaiDeposited(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#206)\n\t\t- _dsrDeposit(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#198)\n", - "markdown": "Reentrancy in [DsrBaseStrategy.borrowAndDeposit(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L195-L199):\n\tExternal calls:\n\t- [treasuryReservesVault.borrow(daiToken,amount,address(this))](contracts/v2/strategies/DsrBaseStrategy.sol#L197)\n\t- [_dsrDeposit(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L198)\n\t\t- [daiJoin.join(address(this),amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L207)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\t\t- [pot.join(shares)](contracts/v2/strategies/DsrBaseStrategy.sol#L208)\n\tEvent emitted after the call(s):\n\t- [DaiDeposited(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L206)\n\t\t- [_dsrDeposit(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L198)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L195-L199", - "id": "6f150fd09fac2796a24b461a93dcda378e0b73d3d94cc538625af3f9b9d80747", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_swap", - "source_mapping": { - "start": 13928, - "length": 768, - "filename_relative": "contracts/core/MultiOtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/MultiOtcOffer.sol", - "filename_short": "contracts/core/MultiOtcOffer.sol", - "is_dependency": false, - "lines": [ - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MultiOtcOffer", - "source_mapping": { - "start": 1163, - "length": 13535, - "filename_relative": "contracts/core/MultiOtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/MultiOtcOffer.sol", - "filename_short": "contracts/core/MultiOtcOffer.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_swap(bytes32,uint256)" - } - }, - { - "type": "node", - "name": "_userBuyToken.safeTransferFrom(_fundsOwner,msg.sender,buyTokenAmount)", - "source_mapping": { - "start": 14618, - "length": 71, - "filename_relative": "contracts/core/MultiOtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/MultiOtcOffer.sol", - "filename_short": "contracts/core/MultiOtcOffer.sol", - "is_dependency": false, - "lines": [ - 306 - ], - "starting_column": 9, - "ending_column": 80 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_swap", - "source_mapping": { - "start": 13928, - "length": 768, - "filename_relative": "contracts/core/MultiOtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/MultiOtcOffer.sol", - "filename_short": "contracts/core/MultiOtcOffer.sol", - "is_dependency": false, - "lines": [ - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MultiOtcOffer", - "source_mapping": { - "start": 1163, - "length": 13535, - "filename_relative": "contracts/core/MultiOtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/MultiOtcOffer.sol", - "filename_short": "contracts/core/MultiOtcOffer.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_swap(bytes32,uint256)" - } - } - } + }, + "signature": "swap(uint256,uint256,address,bytes)" + } + }, + { + "type": "node", + "name": "_safeTransfer(_token0,to,amount0Out)", + "source_mapping": { + "start": 7388, + "length": 38, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [153], + "starting_column": 29, + "ending_column": 67 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" } - ], - "description": "MultiOtcOffer._swap(bytes32,uint256) (contracts/core/MultiOtcOffer.sol#296-307) uses arbitrary from in transferFrom: _userBuyToken.safeTransferFrom(_fundsOwner,msg.sender,buyTokenAmount) (contracts/core/MultiOtcOffer.sol#306)\n", - "markdown": "[MultiOtcOffer._swap(bytes32,uint256)](contracts/core/MultiOtcOffer.sol#L296-L307) uses arbitrary from in transferFrom: [_userBuyToken.safeTransferFrom(_fundsOwner,msg.sender,buyTokenAmount)](contracts/core/MultiOtcOffer.sol#L306)\n", - "first_markdown_element": "contracts/core/MultiOtcOffer.sol#L296-L307", - "id": "5fcc674f3a64b4a8a632801f25795f7fc58332f3a16f9dbb5c2653279f239534", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 5765, - "length": 517, - "filename_relative": "contracts/core/OtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OtcOffer.sol", - "filename_short": "contracts/core/OtcOffer.sol", - "is_dependency": false, - "lines": [ - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OtcOffer", - "source_mapping": { - "start": 847, - "length": 6468, - "filename_relative": "contracts/core/OtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OtcOffer.sol", - "filename_short": "contracts/core/OtcOffer.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "swap(uint256)" - } - }, - { - "type": "node", - "name": "userBuyToken.safeTransferFrom(_fundsOwner,msg.sender,buyTokenAmount)", - "source_mapping": { - "start": 6205, - "length": 70, - "filename_relative": "contracts/core/OtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OtcOffer.sol", - "filename_short": "contracts/core/OtcOffer.sol", - "is_dependency": false, - "lines": [ - 140 - ], - "starting_column": 9, - "ending_column": 79 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 5765, - "length": 517, - "filename_relative": "contracts/core/OtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OtcOffer.sol", - "filename_short": "contracts/core/OtcOffer.sol", - "is_dependency": false, - "lines": [ - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OtcOffer", - "source_mapping": { - "start": 847, - "length": 6468, - "filename_relative": "contracts/core/OtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OtcOffer.sol", - "filename_short": "contracts/core/OtcOffer.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "swap(uint256)" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" } - ], - "description": "OtcOffer.swap(uint256) (contracts/core/OtcOffer.sol#131-141) uses arbitrary from in transferFrom: userBuyToken.safeTransferFrom(_fundsOwner,msg.sender,buyTokenAmount) (contracts/core/OtcOffer.sol#140)\n", - "markdown": "[OtcOffer.swap(uint256)](contracts/core/OtcOffer.sol#L131-L141) uses arbitrary from in transferFrom: [userBuyToken.safeTransferFrom(_fundsOwner,msg.sender,buyTokenAmount)](contracts/core/OtcOffer.sol#L140)\n", - "first_markdown_element": "contracts/core/OtcOffer.sol#L131-L141", - "id": "05d3d20016db7bcfcaa4746897ba0c55c97e64e9bbf77842db5d2e2d9ceae5fd", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - }, - { - "type": "node", - "name": "blockTimestamp = uint32(block.timestamp % 2 ** 32)", - "source_mapping": { - "start": 3302, - "length": 55, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 82 - ], - "starting_column": 9, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_safeTransfer(_token1,to,amount1Out)", + "source_mapping": { + "start": 7490, + "length": 38, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [154], + "starting_column": 29, + "ending_column": 67 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" } - ], - "description": "TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93) uses a weak PRNG: \"blockTimestamp = uint32(block.timestamp % 2 ** 32) (contracts/amm/TempleUniswapV2Pair.sol#82)\" \n", - "markdown": "[TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93) uses a weak PRNG: \"[blockTimestamp = uint32(block.timestamp % 2 ** 32)](contracts/amm/TempleUniswapV2Pair.sol#L82)\" \n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L80-L93", - "id": "290357789cffd43bf264062cb5a528e9a368f77182c65ce7dcfbd4feb9020833", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "nonces", - "source_mapping": { - "start": 1578, - "length": 50, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 45 - ], - "starting_column": 5, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ElderElection", - "source_mapping": { - "start": 908, - "length": 5057, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "_useNonce", - "source_mapping": { - "start": 4540, - "length": 196, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 138, - 139, - 140, - 141, - 142 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ElderElection", - "source_mapping": { - "start": 908, - "length": 5057, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "_useNonce(address)" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" } - ], - "description": "ElderElection.nonces (contracts/governance/ElderElection.sol#45) is never initialized. It is used in:\n\t- ElderElection._useNonce(address) (contracts/governance/ElderElection.sol#138-142)\n", - "markdown": "[ElderElection.nonces](contracts/governance/ElderElection.sol#L45) is never initialized. It is used in:\n\t- [ElderElection._useNonce(address)](contracts/governance/ElderElection.sol#L138-L142)\n", - "first_markdown_element": "contracts/governance/ElderElection.sol#L45", - "id": "a16c4c3a7455ad8f717c8aaf616d23de5d06be103f191c78e6dc3fdbb5eff5e8", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "calc", - "source_mapping": { - "start": 836, - "length": 613, - "filename_relative": "contracts/core/JoiningFee.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/JoiningFee.sol", - "filename_short": "contracts/core/JoiningFee.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "JoiningFee", - "source_mapping": { - "start": 461, - "length": 1345, - "filename_relative": "contracts/core/JoiningFee.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/JoiningFee.sol", - "filename_short": "contracts/core/JoiningFee.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "calc(uint256,uint256,address)" - } - }, - { - "type": "node", - "name": "(block.timestamp - (numCycles * periodDuration) - firstPeriodStartTimestamp) / 3600 * feePerHour", - "source_mapping": { - "start": 1339, - "length": 103, - "filename_relative": "contracts/core/JoiningFee.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/JoiningFee.sol", - "filename_short": "contracts/core/JoiningFee.sol", - "is_dependency": false, - "lines": [ - 38 - ], - "starting_column": 9, - "ending_column": 112 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "calc", - "source_mapping": { - "start": 836, - "length": 613, - "filename_relative": "contracts/core/JoiningFee.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/JoiningFee.sol", - "filename_short": "contracts/core/JoiningFee.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "JoiningFee", - "source_mapping": { - "start": 461, - "length": 1345, - "filename_relative": "contracts/core/JoiningFee.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/JoiningFee.sol", - "filename_short": "contracts/core/JoiningFee.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "calc(uint256,uint256,address)" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)", + "source_mapping": { + "start": 7593, + "length": 76, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [155], + "starting_column": 30, + "ending_column": 106 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" } - ], - "description": "JoiningFee.calc(uint256,uint256,address) (contracts/core/JoiningFee.sol#26-39) performs a multiplication on the result of a division:\n\t- (block.timestamp - (numCycles * periodDuration) - firstPeriodStartTimestamp) / 3600 * feePerHour (contracts/core/JoiningFee.sol#38)\n", - "markdown": "[JoiningFee.calc(uint256,uint256,address)](contracts/core/JoiningFee.sol#L26-L39) performs a multiplication on the result of a division:\n\t- [(block.timestamp - (numCycles * periodDuration) - firstPeriodStartTimestamp) / 3600 * feePerHour](contracts/core/JoiningFee.sol#L38)\n", - "first_markdown_element": "contracts/core/JoiningFee.sol#L26-L39", - "id": "c0d4beb09bbb97e4ec3e7a9e3bd4fc713e216c086a2436671c0e4fdbaa26965b", - "check": "divide-before-multiply", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5359, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - }, - { - "type": "node", - "name": "cycleNumber = (block.timestamp - firstPeriodStartTimestamp) / periodDuration", - "source_mapping": { - "start": 5697, - "length": 76, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 146 - ], - "starting_column": 9, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5359, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - } - } - }, - { - "type": "node", - "name": "inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp", - "source_mapping": { - "start": 5783, - "length": 138, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 147 - ], - "starting_column": 9, - "ending_column": 147 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5359, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - } - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "source_mapping": { + "start": 8457, + "length": 49, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [168], + "starting_column": 9, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" } - ], - "description": "Vault.inEnterExitWindow() (contracts/core/Vault.sol#140-148) performs a multiplication on the result of a division:\n\t- cycleNumber = (block.timestamp - firstPeriodStartTimestamp) / periodDuration (contracts/core/Vault.sol#146)\n\t- inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp (contracts/core/Vault.sol#147)\n", - "markdown": "[Vault.inEnterExitWindow()](contracts/core/Vault.sol#L140-L148) performs a multiplication on the result of a division:\n\t- [cycleNumber = (block.timestamp - firstPeriodStartTimestamp) / periodDuration](contracts/core/Vault.sol#L146)\n\t- [inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp](contracts/core/Vault.sol#L147)\n", - "first_markdown_element": "contracts/core/Vault.sol#L140-L148", - "id": "3aabd4762a2fde5d3ca708a653713c64a4f9b65daaecb672955c03acd76d5927", - "check": "divide-before-multiply", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - }, - { - "type": "node", - "name": "require(bool,string)(success && (data.length == 0 || abi.decode(data,(bool))),UniswapV2: TRANSFER_FAILED)", - "source_mapping": { - "start": 2073, - "length": 96, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 51 - ], - "starting_column": 9, - "ending_column": 105 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "blockTimestampLast" + } + }, + { + "type": "node", + "name": "blockTimestampLast = blockTimestamp", + "source_mapping": { + "start": 3873, + "length": 35, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" } - ], - "description": "TempleUniswapV2Pair._safeTransfer(address,address,uint256) (contracts/amm/TempleUniswapV2Pair.sol#49-52) uses a dangerous strict equality:\n\t- require(bool,string)(success && (data.length == 0 || abi.decode(data,(bool))),UniswapV2: TRANSFER_FAILED) (contracts/amm/TempleUniswapV2Pair.sol#51)\n", - "markdown": "[TempleUniswapV2Pair._safeTransfer(address,address,uint256)](contracts/amm/TempleUniswapV2Pair.sol#L49-L52) uses a dangerous strict equality:\n\t- [require(bool,string)(success && (data.length == 0 || abi.decode(data,(bool))),UniswapV2: TRANSFER_FAILED)](contracts/amm/TempleUniswapV2Pair.sol#L51)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L49-L52", - "id": "2ee4045d0f377d6f8b394394680249a386668a22c42975e90902df9d8fa3b850", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "mint", - "source_mapping": { - "start": 4063, - "length": 1069, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "mint(address)" - } - }, - { - "type": "node", - "name": "_totalSupply == 0", - "source_mapping": { - "start": 4568, - "length": 17, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 104 - ], - "starting_column": 13, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "mint", - "source_mapping": { - "start": 4063, - "length": 1069, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "mint(address)" - } - } - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "blockTimestampLast" + } + }, + { + "type": "node", + "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "source_mapping": { + "start": 8457, + "length": 49, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [168], + "starting_column": 9, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" } - ], - "description": "TempleUniswapV2Pair.mint(address) (contracts/amm/TempleUniswapV2Pair.sol#96-115) uses a dangerous strict equality:\n\t- _totalSupply == 0 (contracts/amm/TempleUniswapV2Pair.sol#104)\n", - "markdown": "[TempleUniswapV2Pair.mint(address)](contracts/amm/TempleUniswapV2Pair.sol#L96-L115) uses a dangerous strict equality:\n\t- [_totalSupply == 0](contracts/amm/TempleUniswapV2Pair.sol#L104)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L96-L115", - "id": "f3faa53f859ed259e9ff2509250c109f539dc4c8a41ed53a9c3a3342c73a4cea", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "amountPerShare", - "source_mapping": { - "start": 4981, - "length": 372, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "amountPerShare()" - } - }, - { - "type": "node", - "name": "p == 0", - "source_mapping": { - "start": 5257, - "length": 6, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 131 - ], - "starting_column": 13, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "amountPerShare", - "source_mapping": { - "start": 4981, - "length": 372, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "amountPerShare()" - } - } - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "reserve0" + } + }, + { + "type": "node", + "name": "reserve0 = uint112(balance0)", + "source_mapping": { + "start": 3797, + "length": 28, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [89], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" } - ], - "description": "Vault.amountPerShare() (contracts/core/Vault.sol#125-138) uses a dangerous strict equality:\n\t- p == 0 (contracts/core/Vault.sol#131)\n", - "markdown": "[Vault.amountPerShare()](contracts/core/Vault.sol#L125-L138) uses a dangerous strict equality:\n\t- [p == 0](contracts/core/Vault.sol#L131)\n", - "first_markdown_element": "contracts/core/Vault.sol#L125-L138", - "id": "4158c1e69d81519dc5989e6d6c111d02083aaaabb931ca68f7b53bccf0ab30fa", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token0,to,amount0)", - "source_mapping": { - "start": 6213, - "length": 35, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 131 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token1,to,amount1)", - "source_mapping": { - "start": 6258, - "length": 35, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 132 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_update(balance0,balance1,_reserve0,_reserve1)", - "source_mapping": { - "start": 6426, - "length": 49, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 136 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "blockTimestampLast" - } - }, - { - "type": "node", - "name": "blockTimestampLast = blockTimestamp", - "source_mapping": { - "start": 3873, - "length": 35, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 91 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "blockTimestampLast" - } - }, - { - "type": "node", - "name": "_update(balance0,balance1,_reserve0,_reserve1)", - "source_mapping": { - "start": 6426, - "length": 49, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 136 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "reserve0" - } - }, - { - "type": "node", - "name": "reserve0 = uint112(balance0)", - "source_mapping": { - "start": 3797, - "length": 28, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 89 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "reserve0" - } - }, - { - "type": "node", - "name": "_update(balance0,balance1,_reserve0,_reserve1)", - "source_mapping": { - "start": 6426, - "length": 49, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 136 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "reserve1" - } - }, - { - "type": "node", - "name": "reserve1 = uint112(balance1)", - "source_mapping": { - "start": 3835, - "length": 28, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 90 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "reserve1" - } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "reserve0" + } + }, + { + "type": "node", + "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "source_mapping": { + "start": 8457, + "length": 49, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [168], + "starting_column": 9, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" } - ], - "description": "Reentrancy in TempleUniswapV2Pair.burn(address) (contracts/amm/TempleUniswapV2Pair.sol#118-138):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0) (contracts/amm/TempleUniswapV2Pair.sol#131)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- _safeTransfer(_token1,to,amount1) (contracts/amm/TempleUniswapV2Pair.sol#132)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\tState variables written after the call(s):\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#136)\n\t\t- blockTimestampLast = blockTimestamp (contracts/amm/TempleUniswapV2Pair.sol#91)\n\tTempleUniswapV2Pair.blockTimestampLast (contracts/amm/TempleUniswapV2Pair.sol#25) can be used in cross function reentrancies:\n\t- TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93)\n\t- TempleUniswapV2Pair.getReserves() (contracts/amm/TempleUniswapV2Pair.sol#43-47)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#136)\n\t\t- reserve0 = uint112(balance0) (contracts/amm/TempleUniswapV2Pair.sol#89)\n\tTempleUniswapV2Pair.reserve0 (contracts/amm/TempleUniswapV2Pair.sol#23) can be used in cross function reentrancies:\n\t- TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93)\n\t- TempleUniswapV2Pair.getReserves() (contracts/amm/TempleUniswapV2Pair.sol#43-47)\n\t- TempleUniswapV2Pair.skim(address) (contracts/amm/TempleUniswapV2Pair.sol#173-178)\n\t- TempleUniswapV2Pair.sync() (contracts/amm/TempleUniswapV2Pair.sol#181-183)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#136)\n\t\t- reserve1 = uint112(balance1) (contracts/amm/TempleUniswapV2Pair.sol#90)\n\tTempleUniswapV2Pair.reserve1 (contracts/amm/TempleUniswapV2Pair.sol#24) can be used in cross function reentrancies:\n\t- TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93)\n\t- TempleUniswapV2Pair.getReserves() (contracts/amm/TempleUniswapV2Pair.sol#43-47)\n\t- TempleUniswapV2Pair.skim(address) (contracts/amm/TempleUniswapV2Pair.sol#173-178)\n\t- TempleUniswapV2Pair.sync() (contracts/amm/TempleUniswapV2Pair.sol#181-183)\n", - "markdown": "Reentrancy in [TempleUniswapV2Pair.burn(address)](contracts/amm/TempleUniswapV2Pair.sol#L118-L138):\n\tExternal calls:\n\t- [_safeTransfer(_token0,to,amount0)](contracts/amm/TempleUniswapV2Pair.sol#L131)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [_safeTransfer(_token1,to,amount1)](contracts/amm/TempleUniswapV2Pair.sol#L132)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\tState variables written after the call(s):\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L136)\n\t\t- [blockTimestampLast = blockTimestamp](contracts/amm/TempleUniswapV2Pair.sol#L91)\n\t[TempleUniswapV2Pair.blockTimestampLast](contracts/amm/TempleUniswapV2Pair.sol#L25) can be used in cross function reentrancies:\n\t- [TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93)\n\t- [TempleUniswapV2Pair.getReserves()](contracts/amm/TempleUniswapV2Pair.sol#L43-L47)\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L136)\n\t\t- [reserve0 = uint112(balance0)](contracts/amm/TempleUniswapV2Pair.sol#L89)\n\t[TempleUniswapV2Pair.reserve0](contracts/amm/TempleUniswapV2Pair.sol#L23) can be used in cross function reentrancies:\n\t- [TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93)\n\t- [TempleUniswapV2Pair.getReserves()](contracts/amm/TempleUniswapV2Pair.sol#L43-L47)\n\t- [TempleUniswapV2Pair.skim(address)](contracts/amm/TempleUniswapV2Pair.sol#L173-L178)\n\t- [TempleUniswapV2Pair.sync()](contracts/amm/TempleUniswapV2Pair.sol#L181-L183)\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L136)\n\t\t- [reserve1 = uint112(balance1)](contracts/amm/TempleUniswapV2Pair.sol#L90)\n\t[TempleUniswapV2Pair.reserve1](contracts/amm/TempleUniswapV2Pair.sol#L24) can be used in cross function reentrancies:\n\t- [TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93)\n\t- [TempleUniswapV2Pair.getReserves()](contracts/amm/TempleUniswapV2Pair.sol#L43-L47)\n\t- [TempleUniswapV2Pair.skim(address)](contracts/amm/TempleUniswapV2Pair.sol#L173-L178)\n\t- [TempleUniswapV2Pair.sync()](contracts/amm/TempleUniswapV2Pair.sol#L181-L183)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L118-L138", - "id": "0379a89cc8645c2b5e10653eb1e7b3fe6480ded71ea4fc2c34965051d126019a", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token0,to,amount0Out)", - "source_mapping": { - "start": 7388, - "length": 38, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 153 - ], - "starting_column": 29, - "ending_column": 67 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token1,to,amount1Out)", - "source_mapping": { - "start": 7490, - "length": 38, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 154 - ], - "starting_column": 29, - "ending_column": 67 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)", + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "reserve1" + } + }, + { + "type": "node", + "name": "reserve1 = uint112(balance1)", + "source_mapping": { + "start": 3835, + "length": 28, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [90], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "reserve1" + } + } + ], + "description": "Reentrancy in TempleUniswapV2Pair.swap(uint256,uint256,address,bytes) (contracts/amm/TempleUniswapV2Pair.sol#141-170):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0Out) (contracts/amm/TempleUniswapV2Pair.sol#153)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- _safeTransfer(_token1,to,amount1Out) (contracts/amm/TempleUniswapV2Pair.sol#154)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data) (contracts/amm/TempleUniswapV2Pair.sol#155)\n\tState variables written after the call(s):\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#168)\n\t\t- blockTimestampLast = blockTimestamp (contracts/amm/TempleUniswapV2Pair.sol#91)\n\tTempleUniswapV2Pair.blockTimestampLast (contracts/amm/TempleUniswapV2Pair.sol#25) can be used in cross function reentrancies:\n\t- TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93)\n\t- TempleUniswapV2Pair.getReserves() (contracts/amm/TempleUniswapV2Pair.sol#43-47)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#168)\n\t\t- reserve0 = uint112(balance0) (contracts/amm/TempleUniswapV2Pair.sol#89)\n\tTempleUniswapV2Pair.reserve0 (contracts/amm/TempleUniswapV2Pair.sol#23) can be used in cross function reentrancies:\n\t- TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93)\n\t- TempleUniswapV2Pair.getReserves() (contracts/amm/TempleUniswapV2Pair.sol#43-47)\n\t- TempleUniswapV2Pair.skim(address) (contracts/amm/TempleUniswapV2Pair.sol#173-178)\n\t- TempleUniswapV2Pair.sync() (contracts/amm/TempleUniswapV2Pair.sol#181-183)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#168)\n\t\t- reserve1 = uint112(balance1) (contracts/amm/TempleUniswapV2Pair.sol#90)\n\tTempleUniswapV2Pair.reserve1 (contracts/amm/TempleUniswapV2Pair.sol#24) can be used in cross function reentrancies:\n\t- TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93)\n\t- TempleUniswapV2Pair.getReserves() (contracts/amm/TempleUniswapV2Pair.sol#43-47)\n\t- TempleUniswapV2Pair.skim(address) (contracts/amm/TempleUniswapV2Pair.sol#173-178)\n\t- TempleUniswapV2Pair.sync() (contracts/amm/TempleUniswapV2Pair.sol#181-183)\n", + "markdown": "Reentrancy in [TempleUniswapV2Pair.swap(uint256,uint256,address,bytes)](contracts/amm/TempleUniswapV2Pair.sol#L141-L170):\n\tExternal calls:\n\t- [_safeTransfer(_token0,to,amount0Out)](contracts/amm/TempleUniswapV2Pair.sol#L153)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [_safeTransfer(_token1,to,amount1Out)](contracts/amm/TempleUniswapV2Pair.sol#L154)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)](contracts/amm/TempleUniswapV2Pair.sol#L155)\n\tState variables written after the call(s):\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L168)\n\t\t- [blockTimestampLast = blockTimestamp](contracts/amm/TempleUniswapV2Pair.sol#L91)\n\t[TempleUniswapV2Pair.blockTimestampLast](contracts/amm/TempleUniswapV2Pair.sol#L25) can be used in cross function reentrancies:\n\t- [TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93)\n\t- [TempleUniswapV2Pair.getReserves()](contracts/amm/TempleUniswapV2Pair.sol#L43-L47)\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L168)\n\t\t- [reserve0 = uint112(balance0)](contracts/amm/TempleUniswapV2Pair.sol#L89)\n\t[TempleUniswapV2Pair.reserve0](contracts/amm/TempleUniswapV2Pair.sol#L23) can be used in cross function reentrancies:\n\t- [TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93)\n\t- [TempleUniswapV2Pair.getReserves()](contracts/amm/TempleUniswapV2Pair.sol#L43-L47)\n\t- [TempleUniswapV2Pair.skim(address)](contracts/amm/TempleUniswapV2Pair.sol#L173-L178)\n\t- [TempleUniswapV2Pair.sync()](contracts/amm/TempleUniswapV2Pair.sol#L181-L183)\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L168)\n\t\t- [reserve1 = uint112(balance1)](contracts/amm/TempleUniswapV2Pair.sol#L90)\n\t[TempleUniswapV2Pair.reserve1](contracts/amm/TempleUniswapV2Pair.sol#L24) can be used in cross function reentrancies:\n\t- [TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93)\n\t- [TempleUniswapV2Pair.getReserves()](contracts/amm/TempleUniswapV2Pair.sol#L43-L47)\n\t- [TempleUniswapV2Pair.skim(address)](contracts/amm/TempleUniswapV2Pair.sol#L173-L178)\n\t- [TempleUniswapV2Pair.sync()](contracts/amm/TempleUniswapV2Pair.sol#L181-L183)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L141-L170", + "id": "5cdaaff3e567de31630793ad7f06e2a605da21349f80f6007c70ec2bd319fbc0", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "i", + "source_mapping": { + "start": 8364, + "length": 9, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [213], + "starting_column": 9, + "ending_column": 18 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "updateStrategyEnabledBorrowTokens", + "source_mapping": { + "start": 8067, + "length": 898, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 7593, - "length": 76, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 155 - ], - "starting_column": 30, - "ending_column": 106 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "updateStrategyEnabledBorrowTokens(address,IERC20[],IERC20[])" + } + } + } + } + ], + "description": "TreasuryReservesVault.updateStrategyEnabledBorrowTokens(address,IERC20[],IERC20[]).i (contracts/v2/TreasuryReservesVault.sol#213) is a local variable never initialized\n", + "markdown": "[TreasuryReservesVault.updateStrategyEnabledBorrowTokens(address,IERC20[],IERC20[]).i](contracts/v2/TreasuryReservesVault.sol#L213) is a local variable never initialized\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L213", + "id": "ccb61a70ed00f67ef5318dfebba8dd5906b02a2b7022418f095ca6131f2e87a0", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "shutdownParams", + "source_mapping": { + "start": 9302, + "length": 36, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [238], + "starting_column": 9, + "ending_column": 45 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "populateShutdownData", + "source_mapping": { + "start": 9022, + "length": 564, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "populateShutdownData(bytes)" + } + } + } + } + ], + "description": "RamosStrategy.populateShutdownData(bytes).shutdownParams (contracts/v2/strategies/RamosStrategy.sol#238) is a local variable never initialized\n", + "markdown": "[RamosStrategy.populateShutdownData(bytes).shutdownParams](contracts/v2/strategies/RamosStrategy.sol#L238) is a local variable never initialized\n", + "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L238", + "id": "e3b0c7352e8da48d32a58f5b6962b6132c525566519d363234f70e52d4760882", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "baseStrategyAvailable", + "source_mapping": { + "start": 21089, + "length": 29, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [476], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "totalAvailable", + "source_mapping": { + "start": 20920, + "length": 877, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 8457, - "length": 49, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 168 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "blockTimestampLast" - } - }, - { - "type": "node", - "name": "blockTimestampLast = blockTimestamp", - "source_mapping": { - "start": 3873, - "length": 35, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 91 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "blockTimestampLast" - } - }, - { - "type": "node", - "name": "_update(balance0,balance1,_reserve0,_reserve1)", - "source_mapping": { - "start": 8457, - "length": 49, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 168 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "reserve0" - } - }, - { - "type": "node", - "name": "reserve0 = uint112(balance0)", - "source_mapping": { - "start": 3797, - "length": 28, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 89 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "reserve0" - } - }, - { - "type": "node", - "name": "_update(balance0,balance1,_reserve0,_reserve1)", - "source_mapping": { - "start": 8457, - "length": 49, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 168 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "reserve1" - } - }, - { - "type": "node", - "name": "reserve1 = uint112(balance1)", - "source_mapping": { - "start": 3835, - "length": 28, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 90 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "reserve1" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "totalAvailable(IERC20)" } - ], - "description": "Reentrancy in TempleUniswapV2Pair.swap(uint256,uint256,address,bytes) (contracts/amm/TempleUniswapV2Pair.sol#141-170):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0Out) (contracts/amm/TempleUniswapV2Pair.sol#153)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- _safeTransfer(_token1,to,amount1Out) (contracts/amm/TempleUniswapV2Pair.sol#154)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data) (contracts/amm/TempleUniswapV2Pair.sol#155)\n\tState variables written after the call(s):\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#168)\n\t\t- blockTimestampLast = blockTimestamp (contracts/amm/TempleUniswapV2Pair.sol#91)\n\tTempleUniswapV2Pair.blockTimestampLast (contracts/amm/TempleUniswapV2Pair.sol#25) can be used in cross function reentrancies:\n\t- TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93)\n\t- TempleUniswapV2Pair.getReserves() (contracts/amm/TempleUniswapV2Pair.sol#43-47)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#168)\n\t\t- reserve0 = uint112(balance0) (contracts/amm/TempleUniswapV2Pair.sol#89)\n\tTempleUniswapV2Pair.reserve0 (contracts/amm/TempleUniswapV2Pair.sol#23) can be used in cross function reentrancies:\n\t- TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93)\n\t- TempleUniswapV2Pair.getReserves() (contracts/amm/TempleUniswapV2Pair.sol#43-47)\n\t- TempleUniswapV2Pair.skim(address) (contracts/amm/TempleUniswapV2Pair.sol#173-178)\n\t- TempleUniswapV2Pair.sync() (contracts/amm/TempleUniswapV2Pair.sol#181-183)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#168)\n\t\t- reserve1 = uint112(balance1) (contracts/amm/TempleUniswapV2Pair.sol#90)\n\tTempleUniswapV2Pair.reserve1 (contracts/amm/TempleUniswapV2Pair.sol#24) can be used in cross function reentrancies:\n\t- TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93)\n\t- TempleUniswapV2Pair.getReserves() (contracts/amm/TempleUniswapV2Pair.sol#43-47)\n\t- TempleUniswapV2Pair.skim(address) (contracts/amm/TempleUniswapV2Pair.sol#173-178)\n\t- TempleUniswapV2Pair.sync() (contracts/amm/TempleUniswapV2Pair.sol#181-183)\n", - "markdown": "Reentrancy in [TempleUniswapV2Pair.swap(uint256,uint256,address,bytes)](contracts/amm/TempleUniswapV2Pair.sol#L141-L170):\n\tExternal calls:\n\t- [_safeTransfer(_token0,to,amount0Out)](contracts/amm/TempleUniswapV2Pair.sol#L153)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [_safeTransfer(_token1,to,amount1Out)](contracts/amm/TempleUniswapV2Pair.sol#L154)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)](contracts/amm/TempleUniswapV2Pair.sol#L155)\n\tState variables written after the call(s):\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L168)\n\t\t- [blockTimestampLast = blockTimestamp](contracts/amm/TempleUniswapV2Pair.sol#L91)\n\t[TempleUniswapV2Pair.blockTimestampLast](contracts/amm/TempleUniswapV2Pair.sol#L25) can be used in cross function reentrancies:\n\t- [TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93)\n\t- [TempleUniswapV2Pair.getReserves()](contracts/amm/TempleUniswapV2Pair.sol#L43-L47)\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L168)\n\t\t- [reserve0 = uint112(balance0)](contracts/amm/TempleUniswapV2Pair.sol#L89)\n\t[TempleUniswapV2Pair.reserve0](contracts/amm/TempleUniswapV2Pair.sol#L23) can be used in cross function reentrancies:\n\t- [TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93)\n\t- [TempleUniswapV2Pair.getReserves()](contracts/amm/TempleUniswapV2Pair.sol#L43-L47)\n\t- [TempleUniswapV2Pair.skim(address)](contracts/amm/TempleUniswapV2Pair.sol#L173-L178)\n\t- [TempleUniswapV2Pair.sync()](contracts/amm/TempleUniswapV2Pair.sol#L181-L183)\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L168)\n\t\t- [reserve1 = uint112(balance1)](contracts/amm/TempleUniswapV2Pair.sol#L90)\n\t[TempleUniswapV2Pair.reserve1](contracts/amm/TempleUniswapV2Pair.sol#L24) can be used in cross function reentrancies:\n\t- [TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93)\n\t- [TempleUniswapV2Pair.getReserves()](contracts/amm/TempleUniswapV2Pair.sol#L43-L47)\n\t- [TempleUniswapV2Pair.skim(address)](contracts/amm/TempleUniswapV2Pair.sol#L173-L178)\n\t- [TempleUniswapV2Pair.sync()](contracts/amm/TempleUniswapV2Pair.sol#L181-L183)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L141-L170", - "id": "5cdaaff3e567de31630793ad7f06e2a605da21349f80f6007c70ec2bd319fbc0", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_burnDToken", - "source_mapping": { - "start": 29999, - "length": 1179, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - }, - { - "type": "node", - "name": "_burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount)", - "source_mapping": { - "start": 30398, - "length": 71, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 688 - ], - "starting_column": 9, - "ending_column": 80 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_burnDToken", - "source_mapping": { - "start": 29999, - "length": 1179, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_tokenCredits[token] = _creditBalance", - "source_mapping": { - "start": 31023, - "length": 37, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 705 - ], - "starting_column": 13, - "ending_column": 50 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_burnDToken", - "source_mapping": { - "start": 29999, - "length": 1179, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "strategyTokenCredits" - } + } + } + } + ], + "description": "TreasuryReservesVault.totalAvailable(IERC20).baseStrategyAvailable (contracts/v2/TreasuryReservesVault.sol#476) is a local variable never initialized\n", + "markdown": "[TreasuryReservesVault.totalAvailable(IERC20).baseStrategyAvailable](contracts/v2/TreasuryReservesVault.sol#L476) is a local variable never initialized\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L476", + "id": "5a877bceafff56259a481e94173f69b6c70a20fc470647802278ccdef5ab0fcd", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_addLiquidity", + "source_mapping": { + "start": 1776, + "length": 1076, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleStableAMMRouter", + "source_mapping": { + "start": 640, + "length": 8255, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#677-709):\n\tExternal calls:\n\t- _burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount) (contracts/v2/TreasuryReservesVault.sol#688)\n\tState variables written after the call(s):\n\t- _tokenCredits[token] = _creditBalance (contracts/v2/TreasuryReservesVault.sol#705)\n\tTreasuryReservesVault.strategyTokenCredits (contracts/v2/TreasuryReservesVault.sol#78) can be used in cross function reentrancies:\n\t- TreasuryReservesVault._availableForStrategyToBorrow(address,ITreasuryReservesVault.StrategyConfig,IERC20,uint256) (contracts/v2/TreasuryReservesVault.sol#533-551)\n\t- TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#677-709)\n\t- TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#638-670)\n\t- TreasuryReservesVault.setStrategyDebtCeiling(address,IERC20,uint256) (contracts/v2/TreasuryReservesVault.sol#242-255)\n\t- TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319)\n\t- TreasuryReservesVault.strategyBalanceSheet(address) (contracts/v2/TreasuryReservesVault.sol#447-467)\n\t- TreasuryReservesVault.strategyTokenCredits (contracts/v2/TreasuryReservesVault.sol#78)\n", - "markdown": "Reentrancy in [TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L677-L709):\n\tExternal calls:\n\t- [_burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount)](contracts/v2/TreasuryReservesVault.sol#L688)\n\tState variables written after the call(s):\n\t- [_tokenCredits[token] = _creditBalance](contracts/v2/TreasuryReservesVault.sol#L705)\n\t[TreasuryReservesVault.strategyTokenCredits](contracts/v2/TreasuryReservesVault.sol#L78) can be used in cross function reentrancies:\n\t- [TreasuryReservesVault._availableForStrategyToBorrow(address,ITreasuryReservesVault.StrategyConfig,IERC20,uint256)](contracts/v2/TreasuryReservesVault.sol#L533-L551)\n\t- [TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L677-L709)\n\t- [TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L638-L670)\n\t- [TreasuryReservesVault.setStrategyDebtCeiling(address,IERC20,uint256)](contracts/v2/TreasuryReservesVault.sol#L242-L255)\n\t- [TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319)\n\t- [TreasuryReservesVault.strategyBalanceSheet(address)](contracts/v2/TreasuryReservesVault.sol#L447-L467)\n\t- [TreasuryReservesVault.strategyTokenCredits](contracts/v2/TreasuryReservesVault.sol#L78)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L677-L709", - "id": "c8932bc3a4a8bcb7213dd16df3325de16b2cfe251691839c0d5db322cdde8cc6", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_mintDToken", - "source_mapping": { - "start": 28533, - "length": 1205, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - }, - { - "type": "node", - "name": "tokenConfig.dToken.mint(strategy,_newDebt)", - "source_mapping": { - "start": 29294, - "length": 43, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 657 - ], - "starting_column": 13, - "ending_column": 56 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_mintDToken", - "source_mapping": { - "start": 28533, - "length": 1205, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_tokenCredits[token] = _creditBalance = 0", - "source_mapping": { - "start": 29387, - "length": 41, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 660 - ], - "starting_column": 13, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_mintDToken", - "source_mapping": { - "start": 28533, - "length": 1205, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "strategyTokenCredits" - } + }, + "signature": "_addLiquidity(uint256,uint256,uint256,uint256,IUniswapV2Pair)" + } + }, + { + "type": "node", + "name": "(reserveA,reserveB) = pair.getReserves()", + "source_mapping": { + "start": 2006, + "length": 52, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [68], + "starting_column": 9, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addLiquidity", + "source_mapping": { + "start": 1776, + "length": 1076, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleStableAMMRouter", + "source_mapping": { + "start": 640, + "length": 8255, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_addLiquidity(uint256,uint256,uint256,uint256,IUniswapV2Pair)" } - ], - "description": "Reentrancy in TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#638-670):\n\tExternal calls:\n\t- tokenConfig.dToken.mint(strategy,_newDebt) (contracts/v2/TreasuryReservesVault.sol#657)\n\tState variables written after the call(s):\n\t- _tokenCredits[token] = _creditBalance = 0 (contracts/v2/TreasuryReservesVault.sol#660)\n\tTreasuryReservesVault.strategyTokenCredits (contracts/v2/TreasuryReservesVault.sol#78) can be used in cross function reentrancies:\n\t- TreasuryReservesVault._availableForStrategyToBorrow(address,ITreasuryReservesVault.StrategyConfig,IERC20,uint256) (contracts/v2/TreasuryReservesVault.sol#533-551)\n\t- TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#677-709)\n\t- TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#638-670)\n\t- TreasuryReservesVault.setStrategyDebtCeiling(address,IERC20,uint256) (contracts/v2/TreasuryReservesVault.sol#242-255)\n\t- TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319)\n\t- TreasuryReservesVault.strategyBalanceSheet(address) (contracts/v2/TreasuryReservesVault.sol#447-467)\n\t- TreasuryReservesVault.strategyTokenCredits (contracts/v2/TreasuryReservesVault.sol#78)\n", - "markdown": "Reentrancy in [TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L638-L670):\n\tExternal calls:\n\t- [tokenConfig.dToken.mint(strategy,_newDebt)](contracts/v2/TreasuryReservesVault.sol#L657)\n\tState variables written after the call(s):\n\t- [_tokenCredits[token] = _creditBalance = 0](contracts/v2/TreasuryReservesVault.sol#L660)\n\t[TreasuryReservesVault.strategyTokenCredits](contracts/v2/TreasuryReservesVault.sol#L78) can be used in cross function reentrancies:\n\t- [TreasuryReservesVault._availableForStrategyToBorrow(address,ITreasuryReservesVault.StrategyConfig,IERC20,uint256)](contracts/v2/TreasuryReservesVault.sol#L533-L551)\n\t- [TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L677-L709)\n\t- [TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L638-L670)\n\t- [TreasuryReservesVault.setStrategyDebtCeiling(address,IERC20,uint256)](contracts/v2/TreasuryReservesVault.sol#L242-L255)\n\t- [TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319)\n\t- [TreasuryReservesVault.strategyBalanceSheet(address)](contracts/v2/TreasuryReservesVault.sol#L447-L467)\n\t- [TreasuryReservesVault.strategyTokenCredits](contracts/v2/TreasuryReservesVault.sol#L78)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L638-L670", - "id": "0ce7ad9bcbc81412efd61c0340786d494f3510ea2cdeb81edb9c0103d00c0d0c", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "removeCollateral", - "source_mapping": { - "start": 6498, - "length": 1031, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeCollateral(uint128,address)" - } - }, - { - "type": "node", - "name": "circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)", - "source_mapping": { - "start": 7012, - "length": 118, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 173, - 174, - 175, - 176, - 177 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeCollateral", - "source_mapping": { - "start": 6498, - "length": 1031, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeCollateral(uint128,address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_accountData.collateral = _collateral - amount", - "source_mapping": { - "start": 7229, - "length": 46, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 180 - ], - "starting_column": 9, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeCollateral", - "source_mapping": { - "start": 6498, - "length": 1031, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeCollateral(uint128,address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "allAccountsData" - } + } + } + } + ], + "description": "TempleStableAMMRouter._addLiquidity(uint256,uint256,uint256,uint256,IUniswapV2Pair) (contracts/amm/TempleStableAMMRouter.sol#61-83) ignores return value by (reserveA,reserveB) = pair.getReserves() (contracts/amm/TempleStableAMMRouter.sol#68)\n", + "markdown": "[TempleStableAMMRouter._addLiquidity(uint256,uint256,uint256,uint256,IUniswapV2Pair)](contracts/amm/TempleStableAMMRouter.sol#L61-L83) ignores return value by [(reserveA,reserveB) = pair.getReserves()](contracts/amm/TempleStableAMMRouter.sol#L68)\n", + "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L61-L83", + "id": "f24551aba47520a07ab79471d9ec9cfe2fe87cd09c197da35e42997dcded68a8", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "swapExactStableForTempleQuote", + "source_mapping": { + "start": 7571, + "length": 271, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [202, 203, 204, 205], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleStableAMMRouter", + "source_mapping": { + "start": 640, + "length": 8255, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in TempleLineOfCredit.removeCollateral(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#166-190):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#173-177)\n\tState variables written after the call(s):\n\t- _accountData.collateral = _collateral - amount (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#180)\n\tTempleLineOfCredit.allAccountsData (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#68) can be used in cross function reentrancies:\n\t- TempleLineOfCredit.accountData(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#540-546)\n\t- TempleLineOfCredit.accountPosition(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#484-503)\n\t- TempleLineOfCredit.addCollateral(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#145-159)\n\t- TempleLineOfCredit.batchLiquidate(address[]) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#318-359)\n\t- TempleLineOfCredit.borrow(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#205-242)\n\t- TempleLineOfCredit.computeLiquidity(address[]) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#523-535)\n\t- TempleLineOfCredit.removeCollateral(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#166-190)\n\t- TempleLineOfCredit.repay(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#253-280)\n\t- TempleLineOfCredit.repayAll(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#287-305)\n", - "markdown": "Reentrancy in [TempleLineOfCredit.removeCollateral(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L173-L177)\n\tState variables written after the call(s):\n\t- [_accountData.collateral = _collateral - amount](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L180)\n\t[TempleLineOfCredit.allAccountsData](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L68) can be used in cross function reentrancies:\n\t- [TempleLineOfCredit.accountData(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L540-L546)\n\t- [TempleLineOfCredit.accountPosition(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L484-L503)\n\t- [TempleLineOfCredit.addCollateral(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L145-L159)\n\t- [TempleLineOfCredit.batchLiquidate(address[])](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L318-L359)\n\t- [TempleLineOfCredit.borrow(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L205-L242)\n\t- [TempleLineOfCredit.computeLiquidity(address[])](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L523-L535)\n\t- [TempleLineOfCredit.removeCollateral(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190)\n\t- [TempleLineOfCredit.repay(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L253-L280)\n\t- [TempleLineOfCredit.repayAll(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L287-L305)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190", - "id": "dffbe20bcc1c2f91394c175a10bd84f3964c2b4101e0079bbddcef08bf456d02", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 875, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - }, - { - "type": "node", - "name": "daiToken.safeApprove(previousTrv,0)", - "source_mapping": { - "start": 16002, - "length": 36, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 394 - ], - "starting_column": 13, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 875, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "treasuryReservesVault = ITreasuryReservesVault(_trv)", - "source_mapping": { - "start": 16128, - "length": 52, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 398 - ], - "starting_column": 9, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 875, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "treasuryReservesVault" - } + }, + "signature": "swapExactStableForTempleQuote(address,uint256)" + } + }, + { + "type": "node", + "name": "(reserveTemple,reserveFrax) = IUniswapV2Pair(pair).getReserves()", + "source_mapping": { + "start": 7687, + "length": 76, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [203], + "starting_column": 9, + "ending_column": 85 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swapExactStableForTempleQuote", + "source_mapping": { + "start": 7571, + "length": 271, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [202, 203, 204, 205], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleStableAMMRouter", + "source_mapping": { + "start": 640, + "length": 8255, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swapExactStableForTempleQuote(address,uint256)" } - ], - "description": "Reentrancy in TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-410):\n\tExternal calls:\n\t- daiToken.safeApprove(previousTrv,0) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#394)\n\tState variables written after the call(s):\n\t- treasuryReservesVault = ITreasuryReservesVault(_trv) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#398)\n\tTempleLineOfCredit.treasuryReservesVault (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#53) can be used in cross function reentrancies:\n\t- TempleLineOfCredit._initDebtTokenCache(TempleLineOfCredit.DebtTokenCache) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#619-658)\n\t- TempleLineOfCredit._repayToken(TempleLineOfCredit.DebtTokenCache,uint128,address,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#705-721)\n\t- TempleLineOfCredit.batchLiquidate(address[]) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#318-359)\n\t- TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-410)\n\t- TempleLineOfCredit.treasuryReservesVault (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#53)\n", - "markdown": "Reentrancy in [TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410):\n\tExternal calls:\n\t- [daiToken.safeApprove(previousTrv,0)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)\n\tState variables written after the call(s):\n\t- [treasuryReservesVault = ITreasuryReservesVault(_trv)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L398)\n\t[TempleLineOfCredit.treasuryReservesVault](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L53) can be used in cross function reentrancies:\n\t- [TempleLineOfCredit._initDebtTokenCache(TempleLineOfCredit.DebtTokenCache)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L619-L658)\n\t- [TempleLineOfCredit._repayToken(TempleLineOfCredit.DebtTokenCache,uint128,address,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L705-L721)\n\t- [TempleLineOfCredit.batchLiquidate(address[])](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L318-L359)\n\t- [TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410)\n\t- [TempleLineOfCredit.treasuryReservesVault](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L53)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410", - "id": "45124547e30483595bf298aa091c92ce13c079404c993c2c8406499fd02de4c8", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7963, - "length": 749, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - }, - { - "type": "node", - "name": "protocolToken.safeApprove(previousVault,0)", - "source_mapping": { - "start": 8231, - "length": 43, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 195 - ], - "starting_column": 13, - "ending_column": 56 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7963, - "length": 749, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.safeApprove(previousVault,0)", - "source_mapping": { - "start": 8288, - "length": 40, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 196 - ], - "starting_column": 13, - "ending_column": 53 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7963, - "length": 749, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "tokenVault = IRamosTokenVault(vault)", - "source_mapping": { - "start": 8349, - "length": 36, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 199 - ], - "starting_column": 9, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTokenVault", - "source_mapping": { - "start": 7963, - "length": 749, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTokenVault(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "tokenVault" - } + } + } + } + ], + "description": "TempleStableAMMRouter.swapExactStableForTempleQuote(address,uint256) (contracts/amm/TempleStableAMMRouter.sol#202-205) ignores return value by (reserveTemple,reserveFrax) = IUniswapV2Pair(pair).getReserves() (contracts/amm/TempleStableAMMRouter.sol#203)\n", + "markdown": "[TempleStableAMMRouter.swapExactStableForTempleQuote(address,uint256)](contracts/amm/TempleStableAMMRouter.sol#L202-L205) ignores return value by [(reserveTemple,reserveFrax) = IUniswapV2Pair(pair).getReserves()](contracts/amm/TempleStableAMMRouter.sol#L203)\n", + "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L202-L205", + "id": "bcaddbd83baa19b08f21d46eaa6d5040ec3da28323505b65de50fbfbd874521c", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "swapExactTempleForStableQuote", + "source_mapping": { + "start": 7848, + "length": 639, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleStableAMMRouter", + "source_mapping": { + "start": 640, + "length": 8255, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in Ramos.setTokenVault(address) (contracts/amo/Ramos.sol#189-209):\n\tExternal calls:\n\t- protocolToken.safeApprove(previousVault,0) (contracts/amo/Ramos.sol#195)\n\t- quoteToken.safeApprove(previousVault,0) (contracts/amo/Ramos.sol#196)\n\tState variables written after the call(s):\n\t- tokenVault = IRamosTokenVault(vault) (contracts/amo/Ramos.sol#199)\n\tRamos.tokenVault (contracts/amo/Ramos.sol#78) can be used in cross function reentrancies:\n\t- Ramos.addLiquidity(IBalancerVault.JoinPoolRequest) (contracts/amo/Ramos.sol#464-513)\n\t- Ramos.rebalanceDownExit(uint256,uint256) (contracts/amo/Ramos.sol#334-364)\n\t- Ramos.rebalanceDownJoin(uint256,uint256) (contracts/amo/Ramos.sol#421-455)\n\t- Ramos.rebalanceUpExit(uint256,uint256) (contracts/amo/Ramos.sol#290-322)\n\t- Ramos.rebalanceUpJoin(uint256,uint256) (contracts/amo/Ramos.sol#376-409)\n\t- Ramos.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256) (contracts/amo/Ramos.sol#522-559)\n\t- Ramos.setTokenVault(address) (contracts/amo/Ramos.sol#189-209)\n\t- Ramos.tokenVault (contracts/amo/Ramos.sol#78)\n", - "markdown": "Reentrancy in [Ramos.setTokenVault(address)](contracts/amo/Ramos.sol#L189-L209):\n\tExternal calls:\n\t- [protocolToken.safeApprove(previousVault,0)](contracts/amo/Ramos.sol#L195)\n\t- [quoteToken.safeApprove(previousVault,0)](contracts/amo/Ramos.sol#L196)\n\tState variables written after the call(s):\n\t- [tokenVault = IRamosTokenVault(vault)](contracts/amo/Ramos.sol#L199)\n\t[Ramos.tokenVault](contracts/amo/Ramos.sol#L78) can be used in cross function reentrancies:\n\t- [Ramos.addLiquidity(IBalancerVault.JoinPoolRequest)](contracts/amo/Ramos.sol#L464-L513)\n\t- [Ramos.rebalanceDownExit(uint256,uint256)](contracts/amo/Ramos.sol#L334-L364)\n\t- [Ramos.rebalanceDownJoin(uint256,uint256)](contracts/amo/Ramos.sol#L421-L455)\n\t- [Ramos.rebalanceUpExit(uint256,uint256)](contracts/amo/Ramos.sol#L290-L322)\n\t- [Ramos.rebalanceUpJoin(uint256,uint256)](contracts/amo/Ramos.sol#L376-L409)\n\t- [Ramos.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)](contracts/amo/Ramos.sol#L522-L559)\n\t- [Ramos.setTokenVault(address)](contracts/amo/Ramos.sol#L189-L209)\n\t- [Ramos.tokenVault](contracts/amo/Ramos.sol#L78)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L189-L209", - "id": "51c39733accdc5dde8af1e99214d3003e0a2be1fffb777f3eb06a7fc56a19db1", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "shutdown", - "source_mapping": { - "start": 11822, - "length": 1632, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shutdown(address)" - } - }, - { - "type": "node", - "name": "_outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy)", - "source_mapping": { - "start": 12499, - "length": 64, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 296 - ], - "starting_column": 13, - "ending_column": 77 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shutdown", - "source_mapping": { - "start": 11822, - "length": 1632, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shutdown(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "delete strategies[strategy]", - "source_mapping": { - "start": 13381, - "length": 27, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 317 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shutdown", - "source_mapping": { - "start": 11822, - "length": 1632, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shutdown(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "strategies" - } + }, + "signature": "swapExactTempleForStableQuote(address,uint256)" + } + }, + { + "type": "node", + "name": "(reserveTemple,reserveFrax) = IUniswapV2Pair(pair).getReserves()", + "source_mapping": { + "start": 7982, + "length": 76, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [208], + "starting_column": 9, + "ending_column": 85 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swapExactTempleForStableQuote", + "source_mapping": { + "start": 7848, + "length": 639, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleStableAMMRouter", + "source_mapping": { + "start": 640, + "length": 8255, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swapExactTempleForStableQuote(address,uint256)" } - ], - "description": "Reentrancy in TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319):\n\tExternal calls:\n\t- _outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy) (contracts/v2/TreasuryReservesVault.sol#296)\n\tState variables written after the call(s):\n\t- delete strategies[strategy] (contracts/v2/TreasuryReservesVault.sol#317)\n\tTreasuryReservesVault.strategies (contracts/v2/TreasuryReservesVault.sol#55) can be used in cross function reentrancies:\n\t- TreasuryReservesVault._getStrategyConfig(address) (contracts/v2/TreasuryReservesVault.sol#711-714)\n\t- TreasuryReservesVault._withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256) (contracts/v2/TreasuryReservesVault.sol#582-632)\n\t- TreasuryReservesVault.addStrategy(address,int256,ITempleStrategy.AssetBalance[]) (contracts/v2/TreasuryReservesVault.sol#173-201)\n\t- TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319)\n\t- TreasuryReservesVault.strategies (contracts/v2/TreasuryReservesVault.sol#55)\n", - "markdown": "Reentrancy in [TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319):\n\tExternal calls:\n\t- [_outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy)](contracts/v2/TreasuryReservesVault.sol#L296)\n\tState variables written after the call(s):\n\t- [delete strategies[strategy]](contracts/v2/TreasuryReservesVault.sol#L317)\n\t[TreasuryReservesVault.strategies](contracts/v2/TreasuryReservesVault.sol#L55) can be used in cross function reentrancies:\n\t- [TreasuryReservesVault._getStrategyConfig(address)](contracts/v2/TreasuryReservesVault.sol#L711-L714)\n\t- [TreasuryReservesVault._withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256)](contracts/v2/TreasuryReservesVault.sol#L582-L632)\n\t- [TreasuryReservesVault.addStrategy(address,int256,ITempleStrategy.AssetBalance[])](contracts/v2/TreasuryReservesVault.sol#L173-L201)\n\t- [TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319)\n\t- [TreasuryReservesVault.strategies](contracts/v2/TreasuryReservesVault.sol#L55)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L283-L319", - "id": "29da7db88824f300cbfeae877c2e6c080f8344d5012c1ba25820228cb3feb89a", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "decreaseShares", - "source_mapping": { - "start": 2355, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "decreaseShares(address,uint256)" - } - }, - { - "type": "node", - "name": "claimFor(account)", - "source_mapping": { - "start": 2441, - "length": 17, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 70 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "decreaseShares", - "source_mapping": { - "start": 2355, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "decreaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", - "source_mapping": { - "start": 3194, - "length": 56, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 91 - ], - "starting_column": 9, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claimFor", - "source_mapping": { - "start": 2718, - "length": 611, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "claimFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "claimedByScaled[account] -= amount * lifetimeAccRevenueScaledByShare", - "source_mapping": { - "start": 2535, - "length": 68, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 74 - ], - "starting_column": 9, - "ending_column": 77 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "decreaseShares", - "source_mapping": { - "start": 2355, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "decreaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "claimedByScaled" - } - }, - { - "type": "node", - "name": "shares[account] -= amount", - "source_mapping": { - "start": 2469, - "length": 25, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 72 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "decreaseShares", - "source_mapping": { - "start": 2355, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "decreaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "shares" - } + } + } + } + ], + "description": "TempleStableAMMRouter.swapExactTempleForStableQuote(address,uint256) (contracts/amm/TempleStableAMMRouter.sol#207-221) ignores return value by (reserveTemple,reserveFrax) = IUniswapV2Pair(pair).getReserves() (contracts/amm/TempleStableAMMRouter.sol#208)\n", + "markdown": "[TempleStableAMMRouter.swapExactTempleForStableQuote(address,uint256)](contracts/amm/TempleStableAMMRouter.sol#L207-L221) ignores return value by [(reserveTemple,reserveFrax) = IUniswapV2Pair(pair).getReserves()](contracts/amm/TempleStableAMMRouter.sol#L208)\n", + "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L207-L221", + "id": "43ba957c0d22f3540a298f9bbbe3e7ef022879a661282996ee551c7d780c6394", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "rebalance", + "source_mapping": { + "start": 1808, + "length": 798, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77):\n\tExternal calls:\n\t- claimFor(account) (contracts/core/TreasuryFarmingRevenue.sol#70)\n\t\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tState variables written after the call(s):\n\t- claimedByScaled[account] -= amount * lifetimeAccRevenueScaledByShare (contracts/core/TreasuryFarmingRevenue.sol#74)\n\tTreasuryFarmingRevenue.claimedByScaled (contracts/core/TreasuryFarmingRevenue.sol#30) can be used in cross function reentrancies:\n\t- TreasuryFarmingRevenue.claimFor(address) (contracts/core/TreasuryFarmingRevenue.sol#80-93)\n\t- TreasuryFarmingRevenue.claimedByScaled (contracts/core/TreasuryFarmingRevenue.sol#30)\n\t- TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77)\n\t- TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64)\n\t- shares[account] -= amount (contracts/core/TreasuryFarmingRevenue.sol#72)\n\tTreasuryFarmingRevenue.shares (contracts/core/TreasuryFarmingRevenue.sol#24) can be used in cross function reentrancies:\n\t- TreasuryFarmingRevenue.claimFor(address) (contracts/core/TreasuryFarmingRevenue.sol#80-93)\n\t- TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77)\n\t- TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64)\n\t- TreasuryFarmingRevenue.shares (contracts/core/TreasuryFarmingRevenue.sol#24)\n", - "markdown": "Reentrancy in [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77):\n\tExternal calls:\n\t- [claimFor(account)](contracts/core/TreasuryFarmingRevenue.sol#L70)\n\t\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tState variables written after the call(s):\n\t- [claimedByScaled[account] -= amount * lifetimeAccRevenueScaledByShare](contracts/core/TreasuryFarmingRevenue.sol#L74)\n\t[TreasuryFarmingRevenue.claimedByScaled](contracts/core/TreasuryFarmingRevenue.sol#L30) can be used in cross function reentrancies:\n\t- [TreasuryFarmingRevenue.claimFor(address)](contracts/core/TreasuryFarmingRevenue.sol#L80-L93)\n\t- [TreasuryFarmingRevenue.claimedByScaled](contracts/core/TreasuryFarmingRevenue.sol#L30)\n\t- [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77)\n\t- [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64)\n\t- [shares[account] -= amount](contracts/core/TreasuryFarmingRevenue.sol#L72)\n\t[TreasuryFarmingRevenue.shares](contracts/core/TreasuryFarmingRevenue.sol#L24) can be used in cross function reentrancies:\n\t- [TreasuryFarmingRevenue.claimFor(address)](contracts/core/TreasuryFarmingRevenue.sol#L80-L93)\n\t- [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77)\n\t- [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64)\n\t- [TreasuryFarmingRevenue.shares](contracts/core/TreasuryFarmingRevenue.sol#L24)\n", - "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L69-L77", - "id": "cc45c8f5d22793c2ba894c4d32e4043890c1184c0a94e5502d25b97876a95c86", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - }, - { - "type": "node", - "name": "paymentContract.initialize(_token)", - "source_mapping": { - "start": 3274, - "length": 34, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 89 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "paymentContract.setAllocations(_dests,_allocations)", - "source_mapping": { - "start": 3318, - "length": 52, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 90 - ], - "starting_column": 9, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "paymentContract.transferOwnership(msg.sender)", - "source_mapping": { - "start": 3381, - "length": 45, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 92 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)", - "source_mapping": { - "start": 3473, - "length": 165, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 13, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "incrementEpoch(address(paymentContract),_totalFunding)", - "source_mapping": { - "start": 3649, - "length": 55, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 102 - ], - "starting_column": 9, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "lastPaidEpoch" - } - }, - { - "type": "node", - "name": "data = FundingData({paymentContract:address(_paymentContract),totalFunding:_totalFunding,epoch:lastPaidEpoch ++})", - "source_mapping": { - "start": 1542, - "length": 182, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 50, - 51, - 52, - 53, - 54 - ], - "starting_column": 9, - "ending_column": 11 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "incrementEpoch", - "source_mapping": { - "start": 1428, - "length": 347, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "incrementEpoch(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "lastPaidEpoch" - } + }, + "signature": "rebalance(Vault,TreasuryFarmingRevenue)" + } + }, + { + "type": "node", + "name": "(inWindow) = vault.inEnterExitWindow()", + "source_mapping": { + "start": 1916, + "length": 45, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [59], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalance", + "source_mapping": { + "start": 1808, + "length": 798, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalance(Vault,TreasuryFarmingRevenue)" } - ], - "description": "Reentrancy in TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256) (contracts/admin/TempleTeamPaymentsFactory.sol#79-112):\n\tExternal calls:\n\t- paymentContract.initialize(_token) (contracts/admin/TempleTeamPaymentsFactory.sol#89)\n\t- paymentContract.setAllocations(_dests,_allocations) (contracts/admin/TempleTeamPaymentsFactory.sol#90)\n\t- paymentContract.transferOwnership(msg.sender) (contracts/admin/TempleTeamPaymentsFactory.sol#92)\n\t- SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#95-100)\n\tState variables written after the call(s):\n\t- incrementEpoch(address(paymentContract),_totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#102)\n\t\t- data = FundingData({paymentContract:address(_paymentContract),totalFunding:_totalFunding,epoch:lastPaidEpoch ++}) (contracts/admin/TempleTeamPaymentsFactory.sol#50-54)\n\tTempleTeamPaymentsFactory.lastPaidEpoch (contracts/admin/TempleTeamPaymentsFactory.sol#23) can be used in cross function reentrancies:\n\t- TempleTeamPaymentsFactory.constructor(address,uint16) (contracts/admin/TempleTeamPaymentsFactory.sol#40-44)\n\t- TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256) (contracts/admin/TempleTeamPaymentsFactory.sol#79-112)\n\t- TempleTeamPaymentsFactory.directPayouts(IERC20,address[],uint256[]) (contracts/admin/TempleTeamPaymentsFactory.sol#119-143)\n\t- TempleTeamPaymentsFactory.incrementEpoch(address,uint256) (contracts/admin/TempleTeamPaymentsFactory.sol#46-56)\n\t- TempleTeamPaymentsFactory.lastPaidEpoch (contracts/admin/TempleTeamPaymentsFactory.sol#23)\n", - "markdown": "Reentrancy in [TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256)](contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112):\n\tExternal calls:\n\t- [paymentContract.initialize(_token)](contracts/admin/TempleTeamPaymentsFactory.sol#L89)\n\t- [paymentContract.setAllocations(_dests,_allocations)](contracts/admin/TempleTeamPaymentsFactory.sol#L90)\n\t- [paymentContract.transferOwnership(msg.sender)](contracts/admin/TempleTeamPaymentsFactory.sol#L92)\n\t- [SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L95-L100)\n\tState variables written after the call(s):\n\t- [incrementEpoch(address(paymentContract),_totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L102)\n\t\t- [data = FundingData({paymentContract:address(_paymentContract),totalFunding:_totalFunding,epoch:lastPaidEpoch ++})](contracts/admin/TempleTeamPaymentsFactory.sol#L50-L54)\n\t[TempleTeamPaymentsFactory.lastPaidEpoch](contracts/admin/TempleTeamPaymentsFactory.sol#L23) can be used in cross function reentrancies:\n\t- [TempleTeamPaymentsFactory.constructor(address,uint16)](contracts/admin/TempleTeamPaymentsFactory.sol#L40-L44)\n\t- [TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256)](contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112)\n\t- [TempleTeamPaymentsFactory.directPayouts(IERC20,address[],uint256[])](contracts/admin/TempleTeamPaymentsFactory.sol#L119-L143)\n\t- [TempleTeamPaymentsFactory.incrementEpoch(address,uint256)](contracts/admin/TempleTeamPaymentsFactory.sol#L46-L56)\n\t- [TempleTeamPaymentsFactory.lastPaidEpoch](contracts/admin/TempleTeamPaymentsFactory.sol#L23)\n", - "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112", - "id": "1239a22bea2c9a42dbde3ae4ac80f8aa9a378a084fd732a81c3169ae01c87319", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "increaseShares", - "source_mapping": { - "start": 1987, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "increaseShares(address,uint256)" - } - }, - { - "type": "node", - "name": "claimFor(account)", - "source_mapping": { - "start": 2073, - "length": 17, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 57 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "increaseShares", - "source_mapping": { - "start": 1987, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "increaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", - "source_mapping": { - "start": 3194, - "length": 56, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 91 - ], - "starting_column": 9, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claimFor", - "source_mapping": { - "start": 2718, - "length": 611, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "claimFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "claimedByScaled[account] += amount * lifetimeAccRevenueScaledByShare", - "source_mapping": { - "start": 2167, - "length": 68, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 77 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "increaseShares", - "source_mapping": { - "start": 1987, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "increaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "claimedByScaled" - } - }, - { - "type": "node", - "name": "shares[account] += amount", - "source_mapping": { - "start": 2101, - "length": 25, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 59 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "increaseShares", - "source_mapping": { - "start": 1987, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "increaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "shares" - } + } + } + } + ], + "description": "OpsManagerLib.rebalance(Vault,TreasuryFarmingRevenue) (contracts/core/OpsManagerLib.sol#55-72) ignores return value by (inWindow) = vault.inEnterExitWindow() (contracts/core/OpsManagerLib.sol#59)\n", + "markdown": "[OpsManagerLib.rebalance(Vault,TreasuryFarmingRevenue)](contracts/core/OpsManagerLib.sol#L55-L72) ignores return value by [(inWindow) = vault.inEnterExitWindow()](contracts/core/OpsManagerLib.sol#L59)\n", + "first_markdown_element": "contracts/core/OpsManagerLib.sol#L55-L72", + "id": "7e51402c4c3f903960137b695ab80a5a95e96c56eb93a4b7d980470911d0bde6", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "requiresRebalance", + "source_mapping": { + "start": 2821, + "length": 553, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64):\n\tExternal calls:\n\t- claimFor(account) (contracts/core/TreasuryFarmingRevenue.sol#57)\n\t\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tState variables written after the call(s):\n\t- claimedByScaled[account] += amount * lifetimeAccRevenueScaledByShare (contracts/core/TreasuryFarmingRevenue.sol#61)\n\tTreasuryFarmingRevenue.claimedByScaled (contracts/core/TreasuryFarmingRevenue.sol#30) can be used in cross function reentrancies:\n\t- TreasuryFarmingRevenue.claimFor(address) (contracts/core/TreasuryFarmingRevenue.sol#80-93)\n\t- TreasuryFarmingRevenue.claimedByScaled (contracts/core/TreasuryFarmingRevenue.sol#30)\n\t- TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77)\n\t- TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64)\n\t- shares[account] += amount (contracts/core/TreasuryFarmingRevenue.sol#59)\n\tTreasuryFarmingRevenue.shares (contracts/core/TreasuryFarmingRevenue.sol#24) can be used in cross function reentrancies:\n\t- TreasuryFarmingRevenue.claimFor(address) (contracts/core/TreasuryFarmingRevenue.sol#80-93)\n\t- TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77)\n\t- TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64)\n\t- TreasuryFarmingRevenue.shares (contracts/core/TreasuryFarmingRevenue.sol#24)\n", - "markdown": "Reentrancy in [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64):\n\tExternal calls:\n\t- [claimFor(account)](contracts/core/TreasuryFarmingRevenue.sol#L57)\n\t\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tState variables written after the call(s):\n\t- [claimedByScaled[account] += amount * lifetimeAccRevenueScaledByShare](contracts/core/TreasuryFarmingRevenue.sol#L61)\n\t[TreasuryFarmingRevenue.claimedByScaled](contracts/core/TreasuryFarmingRevenue.sol#L30) can be used in cross function reentrancies:\n\t- [TreasuryFarmingRevenue.claimFor(address)](contracts/core/TreasuryFarmingRevenue.sol#L80-L93)\n\t- [TreasuryFarmingRevenue.claimedByScaled](contracts/core/TreasuryFarmingRevenue.sol#L30)\n\t- [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77)\n\t- [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64)\n\t- [shares[account] += amount](contracts/core/TreasuryFarmingRevenue.sol#L59)\n\t[TreasuryFarmingRevenue.shares](contracts/core/TreasuryFarmingRevenue.sol#L24) can be used in cross function reentrancies:\n\t- [TreasuryFarmingRevenue.claimFor(address)](contracts/core/TreasuryFarmingRevenue.sol#L80-L93)\n\t- [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77)\n\t- [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64)\n\t- [TreasuryFarmingRevenue.shares](contracts/core/TreasuryFarmingRevenue.sol#L24)\n", - "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L56-L64", - "id": "7136d46cea8f0cb4f10b428d075c61a8ad801ba9ca1ef8c90733aaa52034f6ed", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "i", - "source_mapping": { - "start": 8364, - "length": 9, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 213 - ], - "starting_column": 9, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "updateStrategyEnabledBorrowTokens", - "source_mapping": { - "start": 8067, - "length": 898, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "updateStrategyEnabledBorrowTokens(address,IERC20[],IERC20[])" - } - } - } + }, + "signature": "requiresRebalance(Vault[],TreasuryFarmingRevenue)" + } + }, + { + "type": "node", + "name": "(inWindow) = vaults[i].inEnterExitWindow()", + "source_mapping": { + "start": 3101, + "length": 49, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [86], + "starting_column": 13, + "ending_column": 62 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "requiresRebalance", + "source_mapping": { + "start": 2821, + "length": 553, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "requiresRebalance(Vault[],TreasuryFarmingRevenue)" } - ], - "description": "TreasuryReservesVault.updateStrategyEnabledBorrowTokens(address,IERC20[],IERC20[]).i (contracts/v2/TreasuryReservesVault.sol#213) is a local variable never initialized\n", - "markdown": "[TreasuryReservesVault.updateStrategyEnabledBorrowTokens(address,IERC20[],IERC20[]).i](contracts/v2/TreasuryReservesVault.sol#L213) is a local variable never initialized\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L213", - "id": "ccb61a70ed00f67ef5318dfebba8dd5906b02a2b7022418f095ca6131f2e87a0", - "check": "uninitialized-local", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "shutdownParams", - "source_mapping": { - "start": 9302, - "length": 36, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 238 - ], - "starting_column": 9, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "populateShutdownData", - "source_mapping": { - "start": 9022, - "length": 564, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "populateShutdownData(bytes)" - } - } - } + } + } + } + ], + "description": "OpsManagerLib.requiresRebalance(Vault[],TreasuryFarmingRevenue) (contracts/core/OpsManagerLib.sol#79-95) ignores return value by (inWindow) = vaults[i].inEnterExitWindow() (contracts/core/OpsManagerLib.sol#86)\n", + "markdown": "[OpsManagerLib.requiresRebalance(Vault[],TreasuryFarmingRevenue)](contracts/core/OpsManagerLib.sol#L79-L95) ignores return value by [(inWindow) = vaults[i].inEnterExitWindow()](contracts/core/OpsManagerLib.sol#L86)\n", + "first_markdown_element": "contracts/core/OpsManagerLib.sol#L79-L95", + "id": "0d939f6443be831bd662e4b85b8b26b8ca9716b8fd984c5961f3bbf84c6a1301", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "relayedSetEndorsementsFor", + "source_mapping": { + "start": 3547, + "length": 759, + "filename_relative": "contracts/governance/ElderElection.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/ElderElection.sol", + "filename_short": "contracts/governance/ElderElection.sol", + "is_dependency": false, + "lines": [ + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ElderElection", + "source_mapping": { + "start": 906, + "length": 4629, + "filename_relative": "contracts/governance/ElderElection.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/ElderElection.sol", + "filename_short": "contracts/governance/ElderElection.sol", + "is_dependency": false, + "lines": [ + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "RamosStrategy.populateShutdownData(bytes).shutdownParams (contracts/v2/strategies/RamosStrategy.sol#238) is a local variable never initialized\n", - "markdown": "[RamosStrategy.populateShutdownData(bytes).shutdownParams](contracts/v2/strategies/RamosStrategy.sol#L238) is a local variable never initialized\n", - "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L238", - "id": "e3b0c7352e8da48d32a58f5b6962b6132c525566519d363234f70e52d4760882", - "check": "uninitialized-local", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "baseStrategyAvailable", - "source_mapping": { - "start": 21089, - "length": 29, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 476 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "totalAvailable", - "source_mapping": { - "start": 20920, - "length": 877, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "totalAvailable(IERC20)" - } - } - } + }, + "signature": "relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)" + } + }, + { + "type": "node", + "name": "(signer,err) = ECDSA.tryRecover(digest,signature)", + "source_mapping": { + "start": 3799, + "length": 79, + "filename_relative": "contracts/governance/ElderElection.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/ElderElection.sol", + "filename_short": "contracts/governance/ElderElection.sol", + "is_dependency": false, + "lines": [120], + "starting_column": 9, + "ending_column": 88 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "relayedSetEndorsementsFor", + "source_mapping": { + "start": 3547, + "length": 759, + "filename_relative": "contracts/governance/ElderElection.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/ElderElection.sol", + "filename_short": "contracts/governance/ElderElection.sol", + "is_dependency": false, + "lines": [ + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ElderElection", + "source_mapping": { + "start": 906, + "length": 4629, + "filename_relative": "contracts/governance/ElderElection.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/ElderElection.sol", + "filename_short": "contracts/governance/ElderElection.sol", + "is_dependency": false, + "lines": [ + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)" } - ], - "description": "TreasuryReservesVault.totalAvailable(IERC20).baseStrategyAvailable (contracts/v2/TreasuryReservesVault.sol#476) is a local variable never initialized\n", - "markdown": "[TreasuryReservesVault.totalAvailable(IERC20).baseStrategyAvailable](contracts/v2/TreasuryReservesVault.sol#L476) is a local variable never initialized\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L476", - "id": "5a877bceafff56259a481e94173f69b6c70a20fc470647802278ccdef5ab0fcd", - "check": "uninitialized-local", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "depositAndStake", - "source_mapping": { - "start": 2874, - "length": 351, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "depositAndStake(uint256)" - } - }, - { - "type": "node", - "name": "booster.deposit(auraPoolInfo.pId,amount,true)", - "source_mapping": { - "start": 3161, - "length": 47, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 83 - ], - "starting_column": 13, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositAndStake", - "source_mapping": { - "start": 2874, - "length": 351, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "depositAndStake(uint256)" - } - } - } + } + } + } + ], + "description": "ElderElection.relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes) (contracts/governance/ElderElection.sol#112-129) ignores return value by (signer,err) = ECDSA.tryRecover(digest,signature) (contracts/governance/ElderElection.sol#120)\n", + "markdown": "[ElderElection.relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)](contracts/governance/ElderElection.sol#L112-L129) ignores return value by [(signer,err) = ECDSA.tryRecover(digest,signature)](contracts/governance/ElderElection.sol#L120)\n", + "first_markdown_element": "contracts/governance/ElderElection.sol#L112-L129", + "id": "9b64f931f815683d4712a17416d4cf6183b989dbcbcf6cf13a099a9bb82f7fbd", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "depositAndStake", + "source_mapping": { + "start": 2874, + "length": 351, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [79, 80, 81, 82, 83, 84, 85], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "AuraStaking.depositAndStake(uint256) (contracts/amo/AuraStaking.sol#79-85) ignores return value by booster.deposit(auraPoolInfo.pId,amount,true) (contracts/amo/AuraStaking.sol#83)\n", - "markdown": "[AuraStaking.depositAndStake(uint256)](contracts/amo/AuraStaking.sol#L79-L85) ignores return value by [booster.deposit(auraPoolInfo.pId,amount,true)](contracts/amo/AuraStaking.sol#L83)\n", - "first_markdown_element": "contracts/amo/AuraStaking.sol#L79-L85", - "id": "df1bba2db758866958a0bd3d600869193c2a4c54635aeec3c0158683eb3c6bd1", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawAndUnwrap", - "source_mapping": { - "start": 3286, - "length": 634, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndUnwrap(uint256,bool,address)" - } - }, - { - "type": "node", - "name": "IAuraBaseRewardPool(auraPoolInfo.rewards).withdrawAndUnwrap(toUnstake,claim)", - "source_mapping": { - "start": 3680, - "length": 77, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 93 - ], - "starting_column": 13, - "ending_column": 90 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndUnwrap", - "source_mapping": { - "start": 3286, - "length": 634, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndUnwrap(uint256,bool,address)" - } - } - } + }, + "signature": "depositAndStake(uint256)" + } + }, + { + "type": "node", + "name": "booster.deposit(auraPoolInfo.pId,amount,true)", + "source_mapping": { + "start": 3161, + "length": 47, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [83], + "starting_column": 13, + "ending_column": 60 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "depositAndStake", + "source_mapping": { + "start": 2874, + "length": 351, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [79, 80, 81, 82, 83, 84, 85], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "depositAndStake(uint256)" } - ], - "description": "AuraStaking.withdrawAndUnwrap(uint256,bool,address) (contracts/amo/AuraStaking.sol#88-100) ignores return value by IAuraBaseRewardPool(auraPoolInfo.rewards).withdrawAndUnwrap(toUnstake,claim) (contracts/amo/AuraStaking.sol#93)\n", - "markdown": "[AuraStaking.withdrawAndUnwrap(uint256,bool,address)](contracts/amo/AuraStaking.sol#L88-L100) ignores return value by [IAuraBaseRewardPool(auraPoolInfo.rewards).withdrawAndUnwrap(toUnstake,claim)](contracts/amo/AuraStaking.sol#L93)\n", - "first_markdown_element": "contracts/amo/AuraStaking.sol#L88-L100", - "id": "a3f11c21d94cc0286397b0f4acf966b2e7b4421bbb8026550ce5beae49adbf78", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "getReward", - "source_mapping": { - "start": 4291, - "length": 657, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "getReward(bool)" - } - }, - { - "type": "node", - "name": "IAuraBaseRewardPool(auraPoolInfo.rewards).getReward(address(this),claimExtras)", - "source_mapping": { - "start": 4356, - "length": 79, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 111 - ], - "starting_column": 9, - "ending_column": 88 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "getReward", - "source_mapping": { - "start": 4291, - "length": 657, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "getReward(bool)" - } - } - } + } + } + } + ], + "description": "AuraStaking.depositAndStake(uint256) (contracts/amo/AuraStaking.sol#79-85) ignores return value by booster.deposit(auraPoolInfo.pId,amount,true) (contracts/amo/AuraStaking.sol#83)\n", + "markdown": "[AuraStaking.depositAndStake(uint256)](contracts/amo/AuraStaking.sol#L79-L85) ignores return value by [booster.deposit(auraPoolInfo.pId,amount,true)](contracts/amo/AuraStaking.sol#L83)\n", + "first_markdown_element": "contracts/amo/AuraStaking.sol#L79-L85", + "id": "df1bba2db758866958a0bd3d600869193c2a4c54635aeec3c0158683eb3c6bd1", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "withdrawAndUnwrap", + "source_mapping": { + "start": 3286, + "length": 634, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "AuraStaking.getReward(bool) (contracts/amo/AuraStaking.sol#110-125) ignores return value by IAuraBaseRewardPool(auraPoolInfo.rewards).getReward(address(this),claimExtras) (contracts/amo/AuraStaking.sol#111)\n", - "markdown": "[AuraStaking.getReward(bool)](contracts/amo/AuraStaking.sol#L110-L125) ignores return value by [IAuraBaseRewardPool(auraPoolInfo.rewards).getReward(address(this),claimExtras)](contracts/amo/AuraStaking.sol#L111)\n", - "first_markdown_element": "contracts/amo/AuraStaking.sol#L110-L125", - "id": "334cc08346f4acb06b750e6d7ca0bbba6ed0f1443127882a8bce2dba76eedff5", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "getBalances", - "source_mapping": { - "start": 2079, - "length": 154, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BalancerPoolHelper", - "source_mapping": { - "start": 739, - "length": 19014, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "getBalances()" - } - }, - { - "type": "node", - "name": "(None,balances,None) = balancerVault.getPoolTokens(balancerPoolId)", - "source_mapping": { - "start": 2167, - "length": 59, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 7, - "ending_column": 66 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "getBalances", - "source_mapping": { - "start": 2079, - "length": 154, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BalancerPoolHelper", - "source_mapping": { - "start": 739, - "length": 19014, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "getBalances()" - } - } - } + }, + "signature": "withdrawAndUnwrap(uint256,bool,address)" + } + }, + { + "type": "node", + "name": "IAuraBaseRewardPool(auraPoolInfo.rewards).withdrawAndUnwrap(toUnstake,claim)", + "source_mapping": { + "start": 3680, + "length": 77, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [93], + "starting_column": 13, + "ending_column": 90 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawAndUnwrap", + "source_mapping": { + "start": 3286, + "length": 634, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "withdrawAndUnwrap(uint256,bool,address)" } - ], - "description": "BalancerPoolHelper.getBalances() (contracts/amo/helpers/BalancerPoolHelper.sol#55-57) ignores return value by (None,balances,None) = balancerVault.getPoolTokens(balancerPoolId) (contracts/amo/helpers/BalancerPoolHelper.sol#56)\n", - "markdown": "[BalancerPoolHelper.getBalances()](contracts/amo/helpers/BalancerPoolHelper.sol#L55-L57) ignores return value by [(None,balances,None) = balancerVault.getPoolTokens(balancerPoolId)](contracts/amo/helpers/BalancerPoolHelper.sol#L56)\n", - "first_markdown_element": "contracts/amo/helpers/BalancerPoolHelper.sol#L55-L57", - "id": "97630a6a935fd6fa31a1e214fdb8582cf37cbb5ba228037742cc7ccc77486019", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "proportionalAddLiquidityQuote", - "source_mapping": { - "start": 15567, - "length": 1930, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BalancerPoolHelper", - "source_mapping": { - "start": 739, - "length": 19014, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "proportionalAddLiquidityQuote(uint256,uint256)" - } - }, - { - "type": "node", - "name": "(expectedBptAmount,None) = balancerHelpers.queryJoin(balancerPoolId,amo,amo,requestData)", - "source_mapping": { - "start": 17103, - "length": 88, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 374 - ], - "starting_column": 9, - "ending_column": 97 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "proportionalAddLiquidityQuote", - "source_mapping": { - "start": 15567, - "length": 1930, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BalancerPoolHelper", - "source_mapping": { - "start": 739, - "length": 19014, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "proportionalAddLiquidityQuote(uint256,uint256)" - } - } - } + } + } + } + ], + "description": "AuraStaking.withdrawAndUnwrap(uint256,bool,address) (contracts/amo/AuraStaking.sol#88-100) ignores return value by IAuraBaseRewardPool(auraPoolInfo.rewards).withdrawAndUnwrap(toUnstake,claim) (contracts/amo/AuraStaking.sol#93)\n", + "markdown": "[AuraStaking.withdrawAndUnwrap(uint256,bool,address)](contracts/amo/AuraStaking.sol#L88-L100) ignores return value by [IAuraBaseRewardPool(auraPoolInfo.rewards).withdrawAndUnwrap(toUnstake,claim)](contracts/amo/AuraStaking.sol#L93)\n", + "first_markdown_element": "contracts/amo/AuraStaking.sol#L88-L100", + "id": "a3f11c21d94cc0286397b0f4acf966b2e7b4421bbb8026550ce5beae49adbf78", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "getReward", + "source_mapping": { + "start": 4291, + "length": 657, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "BalancerPoolHelper.proportionalAddLiquidityQuote(uint256,uint256) (contracts/amo/helpers/BalancerPoolHelper.sol#348-380) ignores return value by (expectedBptAmount,None) = balancerHelpers.queryJoin(balancerPoolId,amo,amo,requestData) (contracts/amo/helpers/BalancerPoolHelper.sol#374)\n", - "markdown": "[BalancerPoolHelper.proportionalAddLiquidityQuote(uint256,uint256)](contracts/amo/helpers/BalancerPoolHelper.sol#L348-L380) ignores return value by [(expectedBptAmount,None) = balancerHelpers.queryJoin(balancerPoolId,amo,amo,requestData)](contracts/amo/helpers/BalancerPoolHelper.sol#L374)\n", - "first_markdown_element": "contracts/amo/helpers/BalancerPoolHelper.sol#L348-L380", - "id": "44982b3b03e18740f01aed72e03f5657be31a18422cec5c4f5a8d53b084f8256", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "proportionalRemoveLiquidityQuote", - "source_mapping": { - "start": 17648, - "length": 1775, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BalancerPoolHelper", - "source_mapping": { - "start": 739, - "length": 19014, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "proportionalRemoveLiquidityQuote(uint256,uint256)" - } - }, - { - "type": "node", - "name": "(None,requestData.minAmountsOut) = balancerHelpers.queryExit(balancerPoolId,amo,amo,requestData)", - "source_mapping": { - "start": 18569, - "length": 96, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 405 - ], - "starting_column": 9, - "ending_column": 105 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "proportionalRemoveLiquidityQuote", - "source_mapping": { - "start": 17648, - "length": 1775, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BalancerPoolHelper", - "source_mapping": { - "start": 739, - "length": 19014, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "proportionalRemoveLiquidityQuote(uint256,uint256)" - } - } - } + }, + "signature": "getReward(bool)" + } + }, + { + "type": "node", + "name": "IAuraBaseRewardPool(auraPoolInfo.rewards).getReward(address(this),claimExtras)", + "source_mapping": { + "start": 4356, + "length": 79, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [111], + "starting_column": 9, + "ending_column": 88 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "getReward", + "source_mapping": { + "start": 4291, + "length": 657, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "getReward(bool)" } - ], - "description": "BalancerPoolHelper.proportionalRemoveLiquidityQuote(uint256,uint256) (contracts/amo/helpers/BalancerPoolHelper.sol#384-416) ignores return value by (None,requestData.minAmountsOut) = balancerHelpers.queryExit(balancerPoolId,amo,amo,requestData) (contracts/amo/helpers/BalancerPoolHelper.sol#405)\n", - "markdown": "[BalancerPoolHelper.proportionalRemoveLiquidityQuote(uint256,uint256)](contracts/amo/helpers/BalancerPoolHelper.sol#L384-L416) ignores return value by [(None,requestData.minAmountsOut) = balancerHelpers.queryExit(balancerPoolId,amo,amo,requestData)](contracts/amo/helpers/BalancerPoolHelper.sol#L405)\n", - "first_markdown_element": "contracts/amo/helpers/BalancerPoolHelper.sol#L384-L416", - "id": "08b9be6d43268a91c87113facf1f93ba28159d15047c9ef6e2a5e42a2a791c97", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "removeOtcMarket", - "source_mapping": { - "start": 4310, - "length": 464, - "filename_relative": "contracts/core/MultiOtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/MultiOtcOffer.sol", - "filename_short": "contracts/core/MultiOtcOffer.sol", - "is_dependency": false, - "lines": [ - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MultiOtcOffer", - "source_mapping": { - "start": 1163, - "length": 13535, - "filename_relative": "contracts/core/MultiOtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/MultiOtcOffer.sol", - "filename_short": "contracts/core/MultiOtcOffer.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeOtcMarket(address,address)" - } - }, - { - "type": "node", - "name": "_otcMarketIds.remove(_marketId)", - "source_mapping": { - "start": 4579, - "length": 31, - "filename_relative": "contracts/core/MultiOtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/MultiOtcOffer.sol", - "filename_short": "contracts/core/MultiOtcOffer.sol", - "is_dependency": false, - "lines": [ - 84 - ], - "starting_column": 9, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeOtcMarket", - "source_mapping": { - "start": 4310, - "length": 464, - "filename_relative": "contracts/core/MultiOtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/MultiOtcOffer.sol", - "filename_short": "contracts/core/MultiOtcOffer.sol", - "is_dependency": false, - "lines": [ - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MultiOtcOffer", - "source_mapping": { - "start": 1163, - "length": 13535, - "filename_relative": "contracts/core/MultiOtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/MultiOtcOffer.sol", - "filename_short": "contracts/core/MultiOtcOffer.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeOtcMarket(address,address)" - } - } - } + } + } + } + ], + "description": "AuraStaking.getReward(bool) (contracts/amo/AuraStaking.sol#110-125) ignores return value by IAuraBaseRewardPool(auraPoolInfo.rewards).getReward(address(this),claimExtras) (contracts/amo/AuraStaking.sol#111)\n", + "markdown": "[AuraStaking.getReward(bool)](contracts/amo/AuraStaking.sol#L110-L125) ignores return value by [IAuraBaseRewardPool(auraPoolInfo.rewards).getReward(address(this),claimExtras)](contracts/amo/AuraStaking.sol#L111)\n", + "first_markdown_element": "contracts/amo/AuraStaking.sol#L110-L125", + "id": "334cc08346f4acb06b750e6d7ca0bbba6ed0f1443127882a8bce2dba76eedff5", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "setTokenVault", + "source_mapping": { + "start": 7960, + "length": 628, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "MultiOtcOffer.removeOtcMarket(address,address) (contracts/core/MultiOtcOffer.sol#81-89) ignores return value by _otcMarketIds.remove(_marketId) (contracts/core/MultiOtcOffer.sol#84)\n", - "markdown": "[MultiOtcOffer.removeOtcMarket(address,address)](contracts/core/MultiOtcOffer.sol#L81-L89) ignores return value by [_otcMarketIds.remove(_marketId)](contracts/core/MultiOtcOffer.sol#L84)\n", - "first_markdown_element": "contracts/core/MultiOtcOffer.sol#L81-L89", - "id": "79c4d4701a934e7e79200185323bb45688ce5b0c8b33dda709234bad490f1472", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setBorrowToken", - "source_mapping": { - "start": 4145, - "length": 1025, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setBorrowToken(IERC20,address,uint256,uint256,address)" - } - }, - { - "type": "node", - "name": "_borrowTokenSet.add(address(token))", - "source_mapping": { - "start": 5128, - "length": 35, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 126 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setBorrowToken", - "source_mapping": { - "start": 4145, - "length": 1025, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setBorrowToken(IERC20,address,uint256,uint256,address)" - } - } - } + }, + "signature": "setTokenVault(address)" + } + }, + { + "type": "node", + "name": "protocolToken.approve(previousVault,0)", + "source_mapping": { + "start": 8228, + "length": 39, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [195], + "starting_column": 13, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTokenVault", + "source_mapping": { + "start": 7960, + "length": 628, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTokenVault(address)" } - ], - "description": "TreasuryReservesVault.setBorrowToken(IERC20,address,uint256,uint256,address) (contracts/v2/TreasuryReservesVault.sol#108-127) ignores return value by _borrowTokenSet.add(address(token)) (contracts/v2/TreasuryReservesVault.sol#126)\n", - "markdown": "[TreasuryReservesVault.setBorrowToken(IERC20,address,uint256,uint256,address)](contracts/v2/TreasuryReservesVault.sol#L108-L127) ignores return value by [_borrowTokenSet.add(address(token))](contracts/v2/TreasuryReservesVault.sol#L126)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L108-L127", - "id": "5cf78f34e420dc046a400c32810667b772002358e964fa3e56b9b0a68b28a33f", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "removeBorrowToken", - "source_mapping": { - "start": 5247, - "length": 319, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeBorrowToken(IERC20)" - } - }, - { - "type": "node", - "name": "_borrowTokenSet.remove(address(token))", - "source_mapping": { - "start": 5521, - "length": 38, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 138 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeBorrowToken", - "source_mapping": { - "start": 5247, - "length": 319, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeBorrowToken(IERC20)" - } - } - } + } + } + } + ], + "description": "Ramos.setTokenVault(address) (contracts/amo/Ramos.sol#189-207) ignores return value by protocolToken.approve(previousVault,0) (contracts/amo/Ramos.sol#195)\n", + "markdown": "[Ramos.setTokenVault(address)](contracts/amo/Ramos.sol#L189-L207) ignores return value by [protocolToken.approve(previousVault,0)](contracts/amo/Ramos.sol#L195)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L189-L207", + "id": "f3361a65ee76c42e014ac2084189cb808a536ace3a08c0927237056d9aee806c", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "setTokenVault", + "source_mapping": { + "start": 7960, + "length": 628, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TreasuryReservesVault.removeBorrowToken(IERC20) (contracts/v2/TreasuryReservesVault.sol#132-139) ignores return value by _borrowTokenSet.remove(address(token)) (contracts/v2/TreasuryReservesVault.sol#138)\n", - "markdown": "[TreasuryReservesVault.removeBorrowToken(IERC20)](contracts/v2/TreasuryReservesVault.sol#L132-L139) ignores return value by [_borrowTokenSet.remove(address(token))](contracts/v2/TreasuryReservesVault.sol#L138)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L132-L139", - "id": "5474dfbc0dfd2144f1d3592aebc4e72de5fca48cbeb8ec28a4e82aa1c1ea096c", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "shutdown", - "source_mapping": { - "start": 11822, - "length": 1632, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shutdown(address)" - } - }, - { - "type": "node", - "name": "_strategySet.remove(strategy)", - "source_mapping": { - "start": 13418, - "length": 29, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 318 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shutdown", - "source_mapping": { - "start": 11822, - "length": 1632, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shutdown(address)" - } - } - } + }, + "signature": "setTokenVault(address)" + } + }, + { + "type": "node", + "name": "quoteToken.approve(previousVault,0)", + "source_mapping": { + "start": 8281, + "length": 36, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [196], + "starting_column": 13, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTokenVault", + "source_mapping": { + "start": 7960, + "length": 628, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTokenVault(address)" } - ], - "description": "TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319) ignores return value by _strategySet.remove(strategy) (contracts/v2/TreasuryReservesVault.sol#318)\n", - "markdown": "[TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319) ignores return value by [_strategySet.remove(strategy)](contracts/v2/TreasuryReservesVault.sol#L318)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L283-L319", - "id": "14b0ae4775bb656e93254a9232479092aea49d94c14762546af7a2b568164211", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setIdentifierForCaller", - "source_mapping": { - "start": 1967, - "length": 555, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleCircuitBreakerProxy", - "source_mapping": { - "start": 808, - "length": 3156, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setIdentifierForCaller(address,string)" - } - }, - { - "type": "node", - "name": "_identifiers.add(_identifier)", - "source_mapping": { - "start": 2409, - "length": 29, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setIdentifierForCaller", - "source_mapping": { - "start": 1967, - "length": 555, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleCircuitBreakerProxy", - "source_mapping": { - "start": 808, - "length": 3156, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setIdentifierForCaller(address,string)" - } - } - } + } + } + } + ], + "description": "Ramos.setTokenVault(address) (contracts/amo/Ramos.sol#189-207) ignores return value by quoteToken.approve(previousVault,0) (contracts/amo/Ramos.sol#196)\n", + "markdown": "[Ramos.setTokenVault(address)](contracts/amo/Ramos.sol#L189-L207) ignores return value by [quoteToken.approve(previousVault,0)](contracts/amo/Ramos.sol#L196)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L189-L207", + "id": "aface72eecf0b7ba93b6bf44cc1f3e5761d97abf8c0de3daa4bfebcc0d8b3ccf", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 19877, + "length": 2088, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TempleCircuitBreakerProxy.setIdentifierForCaller(address,string) (contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#47-59) ignores return value by _identifiers.add(_identifier) (contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#56)\n", - "markdown": "[TempleCircuitBreakerProxy.setIdentifierForCaller(address,string)](contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#L47-L59) ignores return value by [_identifiers.add(_identifier)](contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#L56)\n", - "first_markdown_element": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#L47-L59", - "id": "e72127f3ec266630bd01282f5d373e9eadb2fa635a529f17decfa267707680e0", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "latestAssetBalances", - "source_mapping": { - "start": 5827, - "length": 565, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "latestAssetBalances()" - } - }, - { - "type": "node", - "name": "(templeTokenBalance,quoteTokenBalance) = ramos.positions()", - "source_mapping": { - "start": 5992, - "length": 77, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 148 - ], - "starting_column": 9, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "latestAssetBalances", - "source_mapping": { - "start": 5827, - "length": 565, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "latestAssetBalances()" - } - } - } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" + } + }, + { + "type": "node", + "name": "quoteToken.approve(address(balancerVault),0)", + "source_mapping": { + "start": 21130, + "length": 45, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [489], + "starting_column": 17, + "ending_column": 62 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 19877, + "length": 2088, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" } - ], - "description": "RamosStrategy.latestAssetBalances() (contracts/v2/strategies/RamosStrategy.sol#144-159) ignores return value by (templeTokenBalance,quoteTokenBalance) = ramos.positions() (contracts/v2/strategies/RamosStrategy.sol#148)\n", - "markdown": "[RamosStrategy.latestAssetBalances()](contracts/v2/strategies/RamosStrategy.sol#L144-L159) ignores return value by [(templeTokenBalance,quoteTokenBalance) = ramos.positions()](contracts/v2/strategies/RamosStrategy.sol#L148)\n", - "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L144-L159", - "id": "420dcd2cbb24da1b9ab2dafe842594bf844fae670bc85fc21d1d3835c68dd336", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "proportionalAddLiquidityQuote", - "source_mapping": { - "start": 6569, - "length": 393, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "proportionalAddLiquidityQuote(uint256,uint256)" - } - }, - { - "type": "node", - "name": "ramos.poolHelper().proportionalAddLiquidityQuote(_quoteTokenAmount,_slippageBps)", - "source_mapping": { - "start": 6867, - "length": 88, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 174 - ], - "starting_column": 9, - "ending_column": 97 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "proportionalAddLiquidityQuote", - "source_mapping": { - "start": 6569, - "length": 393, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "proportionalAddLiquidityQuote(uint256,uint256)" - } - } - } + } + } + } + ], + "description": "Ramos.addLiquidity(IBalancerVault.JoinPoolRequest) (contracts/amo/Ramos.sol#462-511) ignores return value by quoteToken.approve(address(balancerVault),0) (contracts/amo/Ramos.sol#489)\n", + "markdown": "[Ramos.addLiquidity(IBalancerVault.JoinPoolRequest)](contracts/amo/Ramos.sol#L462-L511) ignores return value by [quoteToken.approve(address(balancerVault),0)](contracts/amo/Ramos.sol#L489)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L462-L511", + "id": "1acb56caae7ee9b6838e5f5408e687213e838f292c79c37223b9cb790b0a5f6c", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "getBalances", + "source_mapping": { + "start": 2079, + "length": 154, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [55, 56, 57], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "BalancerPoolHelper", + "source_mapping": { + "start": 739, + "length": 19014, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "RamosStrategy.proportionalAddLiquidityQuote(uint256,uint256) (contracts/v2/strategies/RamosStrategy.sol#165-175) ignores return value by ramos.poolHelper().proportionalAddLiquidityQuote(_quoteTokenAmount,_slippageBps) (contracts/v2/strategies/RamosStrategy.sol#174)\n", - "markdown": "[RamosStrategy.proportionalAddLiquidityQuote(uint256,uint256)](contracts/v2/strategies/RamosStrategy.sol#L165-L175) ignores return value by [ramos.poolHelper().proportionalAddLiquidityQuote(_quoteTokenAmount,_slippageBps)](contracts/v2/strategies/RamosStrategy.sol#L174)\n", - "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L165-L175", - "id": "b56d2f4548e025710d998bc242ac7f3032f0e8ea504c62f800fead5160f65786", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "proportionalRemoveLiquidityQuote", - "source_mapping": { - "start": 7587, - "length": 438, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "proportionalRemoveLiquidityQuote(uint256,uint256)" - } - }, - { - "type": "node", - "name": "ramos.poolHelper().proportionalRemoveLiquidityQuote(_bptAmount,_slippageBps)", - "source_mapping": { - "start": 7934, - "length": 84, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 202 - ], - "starting_column": 9, - "ending_column": 93 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "proportionalRemoveLiquidityQuote", - "source_mapping": { - "start": 7587, - "length": 438, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "proportionalRemoveLiquidityQuote(uint256,uint256)" - } - } - } + }, + "signature": "getBalances()" + } + }, + { + "type": "node", + "name": "(None,balances,None) = balancerVault.getPoolTokens(balancerPoolId)", + "source_mapping": { + "start": 2167, + "length": 59, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [56], + "starting_column": 7, + "ending_column": 66 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "getBalances", + "source_mapping": { + "start": 2079, + "length": 154, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [55, 56, 57], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "BalancerPoolHelper", + "source_mapping": { + "start": 739, + "length": 19014, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "getBalances()" } - ], - "description": "RamosStrategy.proportionalRemoveLiquidityQuote(uint256,uint256) (contracts/v2/strategies/RamosStrategy.sol#192-203) ignores return value by ramos.poolHelper().proportionalRemoveLiquidityQuote(_bptAmount,_slippageBps) (contracts/v2/strategies/RamosStrategy.sol#202)\n", - "markdown": "[RamosStrategy.proportionalRemoveLiquidityQuote(uint256,uint256)](contracts/v2/strategies/RamosStrategy.sol#L192-L203) ignores return value by [ramos.poolHelper().proportionalRemoveLiquidityQuote(_bptAmount,_slippageBps)](contracts/v2/strategies/RamosStrategy.sol#L202)\n", - "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L192-L203", - "id": "ed71e6585e1914cd70e3ed747dea0a932bd4ba9629191c626628ce16c695c11d", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "populateShutdownData", - "source_mapping": { - "start": 9022, - "length": 564, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "populateShutdownData(bytes)" - } - }, - { - "type": "node", - "name": "(shutdownParams.bptAmount,None,None) = ramos.positions()", - "source_mapping": { - "start": 9349, - "length": 48, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 240 - ], - "starting_column": 9, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "populateShutdownData", - "source_mapping": { - "start": 9022, - "length": 564, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "populateShutdownData(bytes)" - } - } - } + } + } + } + ], + "description": "BalancerPoolHelper.getBalances() (contracts/amo/helpers/BalancerPoolHelper.sol#55-57) ignores return value by (None,balances,None) = balancerVault.getPoolTokens(balancerPoolId) (contracts/amo/helpers/BalancerPoolHelper.sol#56)\n", + "markdown": "[BalancerPoolHelper.getBalances()](contracts/amo/helpers/BalancerPoolHelper.sol#L55-L57) ignores return value by [(None,balances,None) = balancerVault.getPoolTokens(balancerPoolId)](contracts/amo/helpers/BalancerPoolHelper.sol#L56)\n", + "first_markdown_element": "contracts/amo/helpers/BalancerPoolHelper.sol#L55-L57", + "id": "97630a6a935fd6fa31a1e214fdb8582cf37cbb5ba228037742cc7ccc77486019", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "proportionalAddLiquidityQuote", + "source_mapping": { + "start": 15567, + "length": 1930, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "BalancerPoolHelper", + "source_mapping": { + "start": 739, + "length": 19014, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "RamosStrategy.populateShutdownData(bytes) (contracts/v2/strategies/RamosStrategy.sol#232-243) ignores return value by (shutdownParams.bptAmount,None,None) = ramos.positions() (contracts/v2/strategies/RamosStrategy.sol#240)\n", - "markdown": "[RamosStrategy.populateShutdownData(bytes)](contracts/v2/strategies/RamosStrategy.sol#L232-L243) ignores return value by [(shutdownParams.bptAmount,None,None) = ramos.positions()](contracts/v2/strategies/RamosStrategy.sol#L240)\n", - "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L232-L243", - "id": "e68b668794a623b6a5a283b3672d9ddf56508b69062c77c9f4af7f0faf1aa51e", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_doShutdown", - "source_mapping": { - "start": 9818, - "length": 631, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_doShutdown(bytes)" - } - }, - { - "type": "node", - "name": "ramos.removeLiquidity(params.requestData,params.bptAmount)", - "source_mapping": { - "start": 9989, - "length": 59, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 252 - ], - "starting_column": 9, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_doShutdown", - "source_mapping": { - "start": 9818, - "length": 631, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_doShutdown(bytes)" - } - } - } + }, + "signature": "proportionalAddLiquidityQuote(uint256,uint256)" + } + }, + { + "type": "node", + "name": "(expectedBptAmount,None) = balancerHelpers.queryJoin(balancerPoolId,amo,amo,requestData)", + "source_mapping": { + "start": 17103, + "length": 88, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [374], + "starting_column": 9, + "ending_column": 97 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "proportionalAddLiquidityQuote", + "source_mapping": { + "start": 15567, + "length": 1930, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "BalancerPoolHelper", + "source_mapping": { + "start": 739, + "length": 19014, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "proportionalAddLiquidityQuote(uint256,uint256)" } - ], - "description": "RamosStrategy._doShutdown(bytes) (contracts/v2/strategies/RamosStrategy.sol#250-263) ignores return value by ramos.removeLiquidity(params.requestData,params.bptAmount) (contracts/v2/strategies/RamosStrategy.sol#252)\n", - "markdown": "[RamosStrategy._doShutdown(bytes)](contracts/v2/strategies/RamosStrategy.sol#L250-L263) ignores return value by [ramos.removeLiquidity(params.requestData,params.bptAmount)](contracts/v2/strategies/RamosStrategy.sol#L252)\n", - "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L250-L263", - "id": "cab4a6d607fc52a73a76b47684750061e88667af7fd3a9cc5e85e235479031b6", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_addLiquidity", - "source_mapping": { - "start": 1756, - "length": 1076, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_addLiquidity(uint256,uint256,uint256,uint256,IUniswapV2Pair)" - } - }, - { - "type": "node", - "name": "(reserveA,reserveB) = pair.getReserves()", - "source_mapping": { - "start": 1986, - "length": 52, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 9, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_addLiquidity", - "source_mapping": { - "start": 1756, - "length": 1076, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_addLiquidity(uint256,uint256,uint256,uint256,IUniswapV2Pair)" - } - } - } + } + } + } + ], + "description": "BalancerPoolHelper.proportionalAddLiquidityQuote(uint256,uint256) (contracts/amo/helpers/BalancerPoolHelper.sol#348-380) ignores return value by (expectedBptAmount,None) = balancerHelpers.queryJoin(balancerPoolId,amo,amo,requestData) (contracts/amo/helpers/BalancerPoolHelper.sol#374)\n", + "markdown": "[BalancerPoolHelper.proportionalAddLiquidityQuote(uint256,uint256)](contracts/amo/helpers/BalancerPoolHelper.sol#L348-L380) ignores return value by [(expectedBptAmount,None) = balancerHelpers.queryJoin(balancerPoolId,amo,amo,requestData)](contracts/amo/helpers/BalancerPoolHelper.sol#L374)\n", + "first_markdown_element": "contracts/amo/helpers/BalancerPoolHelper.sol#L348-L380", + "id": "44982b3b03e18740f01aed72e03f5657be31a18422cec5c4f5a8d53b084f8256", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "proportionalRemoveLiquidityQuote", + "source_mapping": { + "start": 17648, + "length": 1775, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "BalancerPoolHelper", + "source_mapping": { + "start": 739, + "length": 19014, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TempleStableAMMRouter._addLiquidity(uint256,uint256,uint256,uint256,IUniswapV2Pair) (contracts/amm/TempleStableAMMRouter.sol#61-83) ignores return value by (reserveA,reserveB) = pair.getReserves() (contracts/amm/TempleStableAMMRouter.sol#68)\n", - "markdown": "[TempleStableAMMRouter._addLiquidity(uint256,uint256,uint256,uint256,IUniswapV2Pair)](contracts/amm/TempleStableAMMRouter.sol#L61-L83) ignores return value by [(reserveA,reserveB) = pair.getReserves()](contracts/amm/TempleStableAMMRouter.sol#L68)\n", - "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L61-L83", - "id": "f24551aba47520a07ab79471d9ec9cfe2fe87cd09c197da35e42997dcded68a8", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "swapExactStableForTempleQuote", - "source_mapping": { - "start": 7556, - "length": 271, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 202, - 203, - 204, - 205 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swapExactStableForTempleQuote(address,uint256)" - } - }, - { - "type": "node", - "name": "(reserveTemple,reserveFrax) = IUniswapV2Pair(pair).getReserves()", - "source_mapping": { - "start": 7672, - "length": 76, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 203 - ], - "starting_column": 9, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swapExactStableForTempleQuote", - "source_mapping": { - "start": 7556, - "length": 271, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 202, - 203, - 204, - 205 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swapExactStableForTempleQuote(address,uint256)" - } - } - } + }, + "signature": "proportionalRemoveLiquidityQuote(uint256,uint256)" + } + }, + { + "type": "node", + "name": "(None,requestData.minAmountsOut) = balancerHelpers.queryExit(balancerPoolId,amo,amo,requestData)", + "source_mapping": { + "start": 18569, + "length": 96, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [405], + "starting_column": 9, + "ending_column": 105 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "proportionalRemoveLiquidityQuote", + "source_mapping": { + "start": 17648, + "length": 1775, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "BalancerPoolHelper", + "source_mapping": { + "start": 739, + "length": 19014, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "proportionalRemoveLiquidityQuote(uint256,uint256)" } - ], - "description": "TempleStableAMMRouter.swapExactStableForTempleQuote(address,uint256) (contracts/amm/TempleStableAMMRouter.sol#202-205) ignores return value by (reserveTemple,reserveFrax) = IUniswapV2Pair(pair).getReserves() (contracts/amm/TempleStableAMMRouter.sol#203)\n", - "markdown": "[TempleStableAMMRouter.swapExactStableForTempleQuote(address,uint256)](contracts/amm/TempleStableAMMRouter.sol#L202-L205) ignores return value by [(reserveTemple,reserveFrax) = IUniswapV2Pair(pair).getReserves()](contracts/amm/TempleStableAMMRouter.sol#L203)\n", - "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L202-L205", - "id": "bcaddbd83baa19b08f21d46eaa6d5040ec3da28323505b65de50fbfbd874521c", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "swapExactTempleForStableQuote", - "source_mapping": { - "start": 7833, - "length": 639, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swapExactTempleForStableQuote(address,uint256)" - } - }, - { - "type": "node", - "name": "(reserveTemple,reserveFrax) = IUniswapV2Pair(pair).getReserves()", - "source_mapping": { - "start": 7967, - "length": 76, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 208 - ], - "starting_column": 9, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swapExactTempleForStableQuote", - "source_mapping": { - "start": 7833, - "length": 639, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swapExactTempleForStableQuote(address,uint256)" - } - } - } + } + } + } + ], + "description": "BalancerPoolHelper.proportionalRemoveLiquidityQuote(uint256,uint256) (contracts/amo/helpers/BalancerPoolHelper.sol#384-416) ignores return value by (None,requestData.minAmountsOut) = balancerHelpers.queryExit(balancerPoolId,amo,amo,requestData) (contracts/amo/helpers/BalancerPoolHelper.sol#405)\n", + "markdown": "[BalancerPoolHelper.proportionalRemoveLiquidityQuote(uint256,uint256)](contracts/amo/helpers/BalancerPoolHelper.sol#L384-L416) ignores return value by [(None,requestData.minAmountsOut) = balancerHelpers.queryExit(balancerPoolId,amo,amo,requestData)](contracts/amo/helpers/BalancerPoolHelper.sol#L405)\n", + "first_markdown_element": "contracts/amo/helpers/BalancerPoolHelper.sol#L384-L416", + "id": "08b9be6d43268a91c87113facf1f93ba28159d15047c9ef6e2a5e42a2a791c97", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "removeOtcMarket", + "source_mapping": { + "start": 4307, + "length": 464, + "filename_relative": "contracts/core/MultiOtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/MultiOtcOffer.sol", + "filename_short": "contracts/core/MultiOtcOffer.sol", + "is_dependency": false, + "lines": [81, 82, 83, 84, 85, 86, 87, 88, 89], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "MultiOtcOffer", + "source_mapping": { + "start": 1160, + "length": 13535, + "filename_relative": "contracts/core/MultiOtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/MultiOtcOffer.sol", + "filename_short": "contracts/core/MultiOtcOffer.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TempleStableAMMRouter.swapExactTempleForStableQuote(address,uint256) (contracts/amm/TempleStableAMMRouter.sol#207-221) ignores return value by (reserveTemple,reserveFrax) = IUniswapV2Pair(pair).getReserves() (contracts/amm/TempleStableAMMRouter.sol#208)\n", - "markdown": "[TempleStableAMMRouter.swapExactTempleForStableQuote(address,uint256)](contracts/amm/TempleStableAMMRouter.sol#L207-L221) ignores return value by [(reserveTemple,reserveFrax) = IUniswapV2Pair(pair).getReserves()](contracts/amm/TempleStableAMMRouter.sol#L208)\n", - "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L207-L221", - "id": "43ba957c0d22f3540a298f9bbbe3e7ef022879a661282996ee551c7d780c6394", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "rebalance", - "source_mapping": { - "start": 1808, - "length": 798, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalance(Vault,TreasuryFarmingRevenue)" - } - }, - { - "type": "node", - "name": "(inWindow) = vault.inEnterExitWindow()", - "source_mapping": { - "start": 1916, - "length": 45, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 59 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalance", - "source_mapping": { - "start": 1808, - "length": 798, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalance(Vault,TreasuryFarmingRevenue)" - } - } - } + }, + "signature": "removeOtcMarket(address,address)" + } + }, + { + "type": "node", + "name": "_otcMarketIds.remove(_marketId)", + "source_mapping": { + "start": 4576, + "length": 31, + "filename_relative": "contracts/core/MultiOtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/MultiOtcOffer.sol", + "filename_short": "contracts/core/MultiOtcOffer.sol", + "is_dependency": false, + "lines": [84], + "starting_column": 9, + "ending_column": 40 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeOtcMarket", + "source_mapping": { + "start": 4307, + "length": 464, + "filename_relative": "contracts/core/MultiOtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/MultiOtcOffer.sol", + "filename_short": "contracts/core/MultiOtcOffer.sol", + "is_dependency": false, + "lines": [81, 82, 83, 84, 85, 86, 87, 88, 89], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "MultiOtcOffer", + "source_mapping": { + "start": 1160, + "length": 13535, + "filename_relative": "contracts/core/MultiOtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/MultiOtcOffer.sol", + "filename_short": "contracts/core/MultiOtcOffer.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeOtcMarket(address,address)" } - ], - "description": "OpsManagerLib.rebalance(Vault,TreasuryFarmingRevenue) (contracts/core/OpsManagerLib.sol#55-72) ignores return value by (inWindow) = vault.inEnterExitWindow() (contracts/core/OpsManagerLib.sol#59)\n", - "markdown": "[OpsManagerLib.rebalance(Vault,TreasuryFarmingRevenue)](contracts/core/OpsManagerLib.sol#L55-L72) ignores return value by [(inWindow) = vault.inEnterExitWindow()](contracts/core/OpsManagerLib.sol#L59)\n", - "first_markdown_element": "contracts/core/OpsManagerLib.sol#L55-L72", - "id": "7e51402c4c3f903960137b695ab80a5a95e96c56eb93a4b7d980470911d0bde6", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "requiresRebalance", - "source_mapping": { - "start": 2821, - "length": 553, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "requiresRebalance(Vault[],TreasuryFarmingRevenue)" - } - }, - { - "type": "node", - "name": "(inWindow) = vaults[i].inEnterExitWindow()", - "source_mapping": { - "start": 3101, - "length": 49, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 86 - ], - "starting_column": 13, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "requiresRebalance", - "source_mapping": { - "start": 2821, - "length": 553, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "requiresRebalance(Vault[],TreasuryFarmingRevenue)" - } - } - } + } + } + } + ], + "description": "MultiOtcOffer.removeOtcMarket(address,address) (contracts/core/MultiOtcOffer.sol#81-89) ignores return value by _otcMarketIds.remove(_marketId) (contracts/core/MultiOtcOffer.sol#84)\n", + "markdown": "[MultiOtcOffer.removeOtcMarket(address,address)](contracts/core/MultiOtcOffer.sol#L81-L89) ignores return value by [_otcMarketIds.remove(_marketId)](contracts/core/MultiOtcOffer.sol#L84)\n", + "first_markdown_element": "contracts/core/MultiOtcOffer.sol#L81-L89", + "id": "79c4d4701a934e7e79200185323bb45688ce5b0c8b33dda709234bad490f1472", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "setBorrowToken", + "source_mapping": { + "start": 4145, + "length": 1025, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "OpsManagerLib.requiresRebalance(Vault[],TreasuryFarmingRevenue) (contracts/core/OpsManagerLib.sol#79-95) ignores return value by (inWindow) = vaults[i].inEnterExitWindow() (contracts/core/OpsManagerLib.sol#86)\n", - "markdown": "[OpsManagerLib.requiresRebalance(Vault[],TreasuryFarmingRevenue)](contracts/core/OpsManagerLib.sol#L79-L95) ignores return value by [(inWindow) = vaults[i].inEnterExitWindow()](contracts/core/OpsManagerLib.sol#L86)\n", - "first_markdown_element": "contracts/core/OpsManagerLib.sol#L79-L95", - "id": "0d939f6443be831bd662e4b85b8b26b8ca9716b8fd984c5961f3bbf84c6a1301", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "quoteToken", - "source_mapping": { - "start": 4822, - "length": 18, - "filename_relative": "contracts/interfaces/amo/IRamos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/amo/IRamos.sol", - "filename_short": "contracts/interfaces/amo/IRamos.sol", - "is_dependency": false, - "lines": [ - 103 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "maxRebalanceAmounts", - "source_mapping": { - "start": 4738, - "length": 140, - "filename_relative": "contracts/interfaces/amo/IRamos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/amo/IRamos.sol", - "filename_short": "contracts/interfaces/amo/IRamos.sol", - "is_dependency": false, - "lines": [ - 101, - 102, - 103, - 104, - 105 - ], - "starting_column": 5, - "ending_column": 7 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IRamos", - "source_mapping": { - "start": 1408, - "length": 10519, - "filename_relative": "contracts/interfaces/amo/IRamos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/amo/IRamos.sol", - "filename_short": "contracts/interfaces/amo/IRamos.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "maxRebalanceAmounts()" - } - } - } - }, - { - "type": "function", - "name": "quoteToken", + }, + "signature": "setBorrowToken(IERC20,address,uint256,uint256,address)" + } + }, + { + "type": "node", + "name": "_borrowTokenSet.add(address(token))", + "source_mapping": { + "start": 5128, + "length": 35, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [126], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setBorrowToken", + "source_mapping": { + "start": 4145, + "length": 1025, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 3767, - "length": 53, - "filename_relative": "contracts/interfaces/amo/IRamos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/amo/IRamos.sol", - "filename_short": "contracts/interfaces/amo/IRamos.sol", - "is_dependency": false, - "lines": [ - 80 - ], - "starting_column": 5, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IRamos", - "source_mapping": { - "start": 1408, - "length": 10519, - "filename_relative": "contracts/interfaces/amo/IRamos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/amo/IRamos.sol", - "filename_short": "contracts/interfaces/amo/IRamos.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "quoteToken()" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setBorrowToken(IERC20,address,uint256,uint256,address)" } - ], - "description": "IRamos.maxRebalanceAmounts().quoteToken (contracts/interfaces/amo/IRamos.sol#103) shadows:\n\t- IRamos.quoteToken() (contracts/interfaces/amo/IRamos.sol#80) (function)\n", - "markdown": "[IRamos.maxRebalanceAmounts().quoteToken](contracts/interfaces/amo/IRamos.sol#L103) shadows:\n\t- [IRamos.quoteToken()](contracts/interfaces/amo/IRamos.sol#L80) (function)\n", - "first_markdown_element": "contracts/interfaces/amo/IRamos.sol#L103", - "id": "a030cfdb07ff13cdfeb8487608a714d3b198ff28886a8ef272f9e70a87a70f0a", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "protocolToken", - "source_mapping": { - "start": 4850, - "length": 21, - "filename_relative": "contracts/interfaces/amo/IRamos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/amo/IRamos.sol", - "filename_short": "contracts/interfaces/amo/IRamos.sol", - "is_dependency": false, - "lines": [ - 104 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "maxRebalanceAmounts", - "source_mapping": { - "start": 4738, - "length": 140, - "filename_relative": "contracts/interfaces/amo/IRamos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/amo/IRamos.sol", - "filename_short": "contracts/interfaces/amo/IRamos.sol", - "is_dependency": false, - "lines": [ - 101, - 102, - 103, - 104, - 105 - ], - "starting_column": 5, - "ending_column": 7 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IRamos", - "source_mapping": { - "start": 1408, - "length": 10519, - "filename_relative": "contracts/interfaces/amo/IRamos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/amo/IRamos.sol", - "filename_short": "contracts/interfaces/amo/IRamos.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "maxRebalanceAmounts()" - } - } - } - }, - { - "type": "function", - "name": "protocolToken", + } + } + } + ], + "description": "TreasuryReservesVault.setBorrowToken(IERC20,address,uint256,uint256,address) (contracts/v2/TreasuryReservesVault.sol#108-127) ignores return value by _borrowTokenSet.add(address(token)) (contracts/v2/TreasuryReservesVault.sol#126)\n", + "markdown": "[TreasuryReservesVault.setBorrowToken(IERC20,address,uint256,uint256,address)](contracts/v2/TreasuryReservesVault.sol#L108-L127) ignores return value by [_borrowTokenSet.add(address(token))](contracts/v2/TreasuryReservesVault.sol#L126)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L108-L127", + "id": "5cf78f34e420dc046a400c32810667b772002358e964fa3e56b9b0a68b28a33f", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "removeBorrowToken", + "source_mapping": { + "start": 5247, + "length": 319, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [132, 133, 134, 135, 136, 137, 138, 139], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeBorrowToken(IERC20)" + } + }, + { + "type": "node", + "name": "_borrowTokenSet.remove(address(token))", + "source_mapping": { + "start": 5521, + "length": 38, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [138], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeBorrowToken", + "source_mapping": { + "start": 5247, + "length": 319, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [132, 133, 134, 135, 136, 137, 138, 139], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 3567, - "length": 56, - "filename_relative": "contracts/interfaces/amo/IRamos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/amo/IRamos.sol", - "filename_short": "contracts/interfaces/amo/IRamos.sol", - "is_dependency": false, - "lines": [ - 76 - ], - "starting_column": 5, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IRamos", - "source_mapping": { - "start": 1408, - "length": 10519, - "filename_relative": "contracts/interfaces/amo/IRamos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/amo/IRamos.sol", - "filename_short": "contracts/interfaces/amo/IRamos.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "protocolToken()" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeBorrowToken(IERC20)" + } + } + } + } + ], + "description": "TreasuryReservesVault.removeBorrowToken(IERC20) (contracts/v2/TreasuryReservesVault.sol#132-139) ignores return value by _borrowTokenSet.remove(address(token)) (contracts/v2/TreasuryReservesVault.sol#138)\n", + "markdown": "[TreasuryReservesVault.removeBorrowToken(IERC20)](contracts/v2/TreasuryReservesVault.sol#L132-L139) ignores return value by [_borrowTokenSet.remove(address(token))](contracts/v2/TreasuryReservesVault.sol#L138)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L132-L139", + "id": "5474dfbc0dfd2144f1d3592aebc4e72de5fca48cbeb8ec28a4e82aa1c1ea096c", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "shutdown", + "source_mapping": { + "start": 11822, + "length": 1632, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "IRamos.maxRebalanceAmounts().protocolToken (contracts/interfaces/amo/IRamos.sol#104) shadows:\n\t- IRamos.protocolToken() (contracts/interfaces/amo/IRamos.sol#76) (function)\n", - "markdown": "[IRamos.maxRebalanceAmounts().protocolToken](contracts/interfaces/amo/IRamos.sol#L104) shadows:\n\t- [IRamos.protocolToken()](contracts/interfaces/amo/IRamos.sol#L76) (function)\n", - "first_markdown_element": "contracts/interfaces/amo/IRamos.sol#L104", - "id": "99988e8d4356d61dc22dc1203ce47d52bd194ee6c04869d1c08b03332a4a64b3", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "baseShares", + }, + "signature": "shutdown(address)" + } + }, + { + "type": "node", + "name": "_strategySet.remove(strategy)", + "source_mapping": { + "start": 13418, + "length": 29, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [318], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "shutdown", + "source_mapping": { + "start": 11822, + "length": 1632, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 3468, - "length": 18, - "filename_relative": "contracts/interfaces/v2/ITempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITempleDebtToken.sol", - "filename_short": "contracts/interfaces/v2/ITempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 86 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "debtors", - "source_mapping": { - "start": 3219, - "length": 737, - "filename_relative": "contracts/interfaces/v2/ITempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITempleDebtToken.sol", - "filename_short": "contracts/interfaces/v2/ITempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 5, - "ending_column": 7 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ITempleDebtToken", - "source_mapping": { - "start": 325, - "length": 8309, - "filename_relative": "contracts/interfaces/v2/ITempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITempleDebtToken.sol", - "filename_short": "contracts/interfaces/v2/ITempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "debtors(address)" - } - } - } - }, - { - "type": "function", - "name": "baseShares", - "source_mapping": { - "start": 1667, - "length": 54, - "filename_relative": "contracts/interfaces/v2/ITempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITempleDebtToken.sol", - "filename_short": "contracts/interfaces/v2/ITempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 5, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ITempleDebtToken", - "source_mapping": { - "start": 325, - "length": 8309, - "filename_relative": "contracts/interfaces/v2/ITempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITempleDebtToken.sol", - "filename_short": "contracts/interfaces/v2/ITempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "baseShares()" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "shutdown(address)" } - ], - "description": "ITempleDebtToken.debtors(address).baseShares (contracts/interfaces/v2/ITempleDebtToken.sol#86) shadows:\n\t- ITempleDebtToken.baseShares() (contracts/interfaces/v2/ITempleDebtToken.sol#42) (function)\n", - "markdown": "[ITempleDebtToken.debtors(address).baseShares](contracts/interfaces/v2/ITempleDebtToken.sol#L86) shadows:\n\t- [ITempleDebtToken.baseShares()](contracts/interfaces/v2/ITempleDebtToken.sol#L42) (function)\n", - "first_markdown_element": "contracts/interfaces/v2/ITempleDebtToken.sol#L86", - "id": "660d8ad3fe151743a4b6eac08ff790cbd92361508e6a7e1ac51d359fbd40579a", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "borrow", - "source_mapping": { - "start": 11494, - "length": 11, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 291 - ], - "starting_column": 30, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setGlobalPaused", - "source_mapping": { - "start": 11469, - "length": 60, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 291 - ], - "starting_column": 5, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ITreasuryReservesVault", - "source_mapping": { - "start": 1896, - "length": 12436, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setGlobalPaused(bool,bool)" - } - } - } - }, - { - "type": "function", - "name": "borrow", - "source_mapping": { - "start": 13392, - "length": 80, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 336 - ], - "starting_column": 5, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ITreasuryReservesVault", - "source_mapping": { - "start": 1896, - "length": 12436, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrow(IERC20,uint256,address)" - } + } + } + } + ], + "description": "TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319) ignores return value by _strategySet.remove(strategy) (contracts/v2/TreasuryReservesVault.sol#318)\n", + "markdown": "[TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319) ignores return value by [_strategySet.remove(strategy)](contracts/v2/TreasuryReservesVault.sol#L318)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L283-L319", + "id": "14b0ae4775bb656e93254a9232479092aea49d94c14762546af7a2b568164211", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "setIdentifierForCaller", + "source_mapping": { + "start": 1967, + "length": 555, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "is_dependency": false, + "lines": [47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleCircuitBreakerProxy", + "source_mapping": { + "start": 808, + "length": 3156, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "ITreasuryReservesVault.setGlobalPaused(bool,bool).borrow (contracts/interfaces/v2/ITreasuryReservesVault.sol#291) shadows:\n\t- ITreasuryReservesVault.borrow(IERC20,uint256,address) (contracts/interfaces/v2/ITreasuryReservesVault.sol#336) (function)\n", - "markdown": "[ITreasuryReservesVault.setGlobalPaused(bool,bool).borrow](contracts/interfaces/v2/ITreasuryReservesVault.sol#L291) shadows:\n\t- [ITreasuryReservesVault.borrow(IERC20,uint256,address)](contracts/interfaces/v2/ITreasuryReservesVault.sol#L336) (function)\n", - "first_markdown_element": "contracts/interfaces/v2/ITreasuryReservesVault.sol#L291", - "id": "ee178bdb812ac154f4b12235ea96012285731106c401b64ca146c3171f9f2b58", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "borrow", - "source_mapping": { - "start": 11679, - "length": 11, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 296 - ], - "starting_column": 50, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setStrategyPaused", - "source_mapping": { - "start": 11634, - "length": 80, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 296 - ], - "starting_column": 5, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ITreasuryReservesVault", - "source_mapping": { - "start": 1896, - "length": 12436, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setStrategyPaused(address,bool,bool)" - } - } - } - }, - { - "type": "function", - "name": "borrow", - "source_mapping": { - "start": 13392, - "length": 80, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 336 - ], - "starting_column": 5, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ITreasuryReservesVault", - "source_mapping": { - "start": 1896, - "length": 12436, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrow(IERC20,uint256,address)" - } + }, + "signature": "setIdentifierForCaller(address,string)" + } + }, + { + "type": "node", + "name": "_identifiers.add(_identifier)", + "source_mapping": { + "start": 2409, + "length": 29, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "is_dependency": false, + "lines": [56], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setIdentifierForCaller", + "source_mapping": { + "start": 1967, + "length": 555, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "is_dependency": false, + "lines": [47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleCircuitBreakerProxy", + "source_mapping": { + "start": 808, + "length": 3156, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setIdentifierForCaller(address,string)" } - ], - "description": "ITreasuryReservesVault.setStrategyPaused(address,bool,bool).borrow (contracts/interfaces/v2/ITreasuryReservesVault.sol#296) shadows:\n\t- ITreasuryReservesVault.borrow(IERC20,uint256,address) (contracts/interfaces/v2/ITreasuryReservesVault.sol#336) (function)\n", - "markdown": "[ITreasuryReservesVault.setStrategyPaused(address,bool,bool).borrow](contracts/interfaces/v2/ITreasuryReservesVault.sol#L296) shadows:\n\t- [ITreasuryReservesVault.borrow(IERC20,uint256,address)](contracts/interfaces/v2/ITreasuryReservesVault.sol#L336) (function)\n", - "first_markdown_element": "contracts/interfaces/v2/ITreasuryReservesVault.sol#L296", - "id": "1f2b144fa0b8083ee1a1ca697a2403bf2d85ddb7223aae096e89a677da991192", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "amountOut_scope_0", - "source_mapping": { - "start": 4835, - "length": 62, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 133 - ], - "starting_column": 9, - "ending_column": 71 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swapExactStableForTemple", - "source_mapping": { - "start": 4485, - "length": 687, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swapExactStableForTemple(uint256,uint256,address,address,uint256)" - } - } - } - }, - { - "type": "variable", - "name": "amountOut", - "source_mapping": { - "start": 4685, - "length": 14, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 128 - ], - "starting_column": 50, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swapExactStableForTemple", - "source_mapping": { - "start": 4485, - "length": 687, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swapExactStableForTemple(uint256,uint256,address,address,uint256)" - } - } - } - }, - { - "type": "variable", - "name": "amountOut", - "source_mapping": { - "start": 4685, - "length": 14, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 128 - ], - "starting_column": 50, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swapExactStableForTemple", - "source_mapping": { - "start": 4485, - "length": 687, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swapExactStableForTemple(uint256,uint256,address,address,uint256)" - } - } - } - }, - { - "type": "variable", - "name": "amountOut", - "source_mapping": { - "start": 4685, - "length": 14, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 128 - ], - "starting_column": 50, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swapExactStableForTemple", - "source_mapping": { - "start": 4485, - "length": 687, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swapExactStableForTemple(uint256,uint256,address,address,uint256)" - } - } - } + } + } + } + ], + "description": "TempleCircuitBreakerProxy.setIdentifierForCaller(address,string) (contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#47-59) ignores return value by _identifiers.add(_identifier) (contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#56)\n", + "markdown": "[TempleCircuitBreakerProxy.setIdentifierForCaller(address,string)](contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#L47-L59) ignores return value by [_identifiers.add(_identifier)](contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#L56)\n", + "first_markdown_element": "contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#L47-L59", + "id": "e72127f3ec266630bd01282f5d373e9eadb2fa635a529f17decfa267707680e0", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "latestAssetBalances", + "source_mapping": { + "start": 5827, + "length": 565, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TempleStableAMMRouter.swapExactStableForTemple(uint256,uint256,address,address,uint256).amountOut_scope_0 (contracts/amm/TempleStableAMMRouter.sol#133) shadows:\n\t- TempleStableAMMRouter.swapExactStableForTemple(uint256,uint256,address,address,uint256).amountOut (contracts/amm/TempleStableAMMRouter.sol#128) (return variable)\n\t- TempleStableAMMRouter.swapExactStableForTemple(uint256,uint256,address,address,uint256).amountOut (contracts/amm/TempleStableAMMRouter.sol#128) (return variable)\n\t- TempleStableAMMRouter.swapExactStableForTemple(uint256,uint256,address,address,uint256).amountOut (contracts/amm/TempleStableAMMRouter.sol#128) (return variable)\n", - "markdown": "[TempleStableAMMRouter.swapExactStableForTemple(uint256,uint256,address,address,uint256).amountOut_scope_0](contracts/amm/TempleStableAMMRouter.sol#L133) shadows:\n\t- [TempleStableAMMRouter.swapExactStableForTemple(uint256,uint256,address,address,uint256).amountOut](contracts/amm/TempleStableAMMRouter.sol#L128) (return variable)\n\t- [TempleStableAMMRouter.swapExactStableForTemple(uint256,uint256,address,address,uint256).amountOut](contracts/amm/TempleStableAMMRouter.sol#L128) (return variable)\n\t- [TempleStableAMMRouter.swapExactStableForTemple(uint256,uint256,address,address,uint256).amountOut](contracts/amm/TempleStableAMMRouter.sol#L128) (return variable)\n", - "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L133", - "id": "dfcbde91a2b5ed5d0d5ed22c62f0b14c024b922a48014a11601682bab0c693fa", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "setEpy", - "source_mapping": { - "start": 2547, - "length": 212, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 72, - 73, - 74, - 75 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setEpy(uint256,uint256)" - } - }, - { - "type": "node", - "name": "epy = ABDKMath64x64.fromUInt(1).add(ABDKMath64x64.divu(_numerator,_denominator))", - "source_mapping": { - "start": 2671, - "length": 81, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 74 - ], - "starting_column": 9, - "ending_column": 90 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setEpy", - "source_mapping": { - "start": 2547, - "length": 212, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 72, - 73, - 74, - 75 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setEpy(uint256,uint256)" - } - } - } + }, + "signature": "latestAssetBalances()" + } + }, + { + "type": "node", + "name": "(templeTokenBalance,quoteTokenBalance) = ramos.positions()", + "source_mapping": { + "start": 5992, + "length": 77, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [148], + "starting_column": 9, + "ending_column": 86 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "latestAssetBalances", + "source_mapping": { + "start": 5827, + "length": 565, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "latestAssetBalances()" } - ], - "description": "TempleStaking.setEpy(uint256,uint256) (contracts/deprecated/TempleStaking.sol#72-75) should emit an event for: \n\t- epy = ABDKMath64x64.fromUInt(1).add(ABDKMath64x64.divu(_numerator,_denominator)) (contracts/deprecated/TempleStaking.sol#74) \n", - "markdown": "[TempleStaking.setEpy(uint256,uint256)](contracts/deprecated/TempleStaking.sol#L72-L75) should emit an event for: \n\t- [epy = ABDKMath64x64.fromUInt(1).add(ABDKMath64x64.divu(_numerator,_denominator))](contracts/deprecated/TempleStaking.sol#L74) \n", - "first_markdown_element": "contracts/deprecated/TempleStaking.sol#L72-L75", - "id": "66bcff6498cebf5796c64af18f0c23c346a69b2f3379e2371869c68331d2d460", - "check": "events-maths", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_owner", - "source_mapping": { - "start": 2665, - "length": 14, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 67 - ], - "starting_column": 17, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 2653, - "length": 152, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,address)" - } - } - } - }, - { - "type": "node", - "name": "owner = _owner", - "source_mapping": { - "start": 2732, - "length": 14, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 9, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 2653, - "length": 152, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,address)" - } - } - } + } + } + } + ], + "description": "RamosStrategy.latestAssetBalances() (contracts/v2/strategies/RamosStrategy.sol#144-159) ignores return value by (templeTokenBalance,quoteTokenBalance) = ramos.positions() (contracts/v2/strategies/RamosStrategy.sol#148)\n", + "markdown": "[RamosStrategy.latestAssetBalances()](contracts/v2/strategies/RamosStrategy.sol#L144-L159) ignores return value by [(templeTokenBalance,quoteTokenBalance) = ramos.positions()](contracts/v2/strategies/RamosStrategy.sol#L148)\n", + "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L144-L159", + "id": "420dcd2cbb24da1b9ab2dafe842594bf844fae670bc85fc21d1d3835c68dd336", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "proportionalAddLiquidityQuote", + "source_mapping": { + "start": 6569, + "length": 393, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TempleUniswapV2Pair.constructor(address,address,address)._owner (contracts/amm/TempleUniswapV2Pair.sol#67) lacks a zero-check on :\n\t\t- owner = _owner (contracts/amm/TempleUniswapV2Pair.sol#68)\n", - "markdown": "[TempleUniswapV2Pair.constructor(address,address,address)._owner](contracts/amm/TempleUniswapV2Pair.sol#L67) lacks a zero-check on :\n\t\t- [owner = _owner](contracts/amm/TempleUniswapV2Pair.sol#L68)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L67", - "id": "957fa8fd60f70987f3ddecb1cc94bcc42a04d5732b7d1fd612e14be458618171", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_token0", - "source_mapping": { - "start": 2681, - "length": 15, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 67 - ], - "starting_column": 33, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 2653, - "length": 152, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,address)" - } - } - } - }, - { - "type": "node", - "name": "token0 = _token0", - "source_mapping": { - "start": 2756, - "length": 16, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 2653, - "length": 152, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,address)" - } - } - } + }, + "signature": "proportionalAddLiquidityQuote(uint256,uint256)" + } + }, + { + "type": "node", + "name": "ramos.poolHelper().proportionalAddLiquidityQuote(_quoteTokenAmount,_slippageBps)", + "source_mapping": { + "start": 6867, + "length": 88, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [174], + "starting_column": 9, + "ending_column": 97 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "proportionalAddLiquidityQuote", + "source_mapping": { + "start": 6569, + "length": 393, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "proportionalAddLiquidityQuote(uint256,uint256)" } - ], - "description": "TempleUniswapV2Pair.constructor(address,address,address)._token0 (contracts/amm/TempleUniswapV2Pair.sol#67) lacks a zero-check on :\n\t\t- token0 = _token0 (contracts/amm/TempleUniswapV2Pair.sol#69)\n", - "markdown": "[TempleUniswapV2Pair.constructor(address,address,address)._token0](contracts/amm/TempleUniswapV2Pair.sol#L67) lacks a zero-check on :\n\t\t- [token0 = _token0](contracts/amm/TempleUniswapV2Pair.sol#L69)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L67", - "id": "89b68064543393a53cb614749cb260c4fb872797867021adbebf53b5a0362b2f", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_token1", - "source_mapping": { - "start": 2698, - "length": 15, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 67 - ], - "starting_column": 50, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 2653, - "length": 152, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,address)" - } - } - } - }, - { - "type": "node", - "name": "token1 = _token1", - "source_mapping": { - "start": 2782, - "length": 16, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 70 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 2653, - "length": 152, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,address)" - } - } - } + } + } + } + ], + "description": "RamosStrategy.proportionalAddLiquidityQuote(uint256,uint256) (contracts/v2/strategies/RamosStrategy.sol#165-175) ignores return value by ramos.poolHelper().proportionalAddLiquidityQuote(_quoteTokenAmount,_slippageBps) (contracts/v2/strategies/RamosStrategy.sol#174)\n", + "markdown": "[RamosStrategy.proportionalAddLiquidityQuote(uint256,uint256)](contracts/v2/strategies/RamosStrategy.sol#L165-L175) ignores return value by [ramos.poolHelper().proportionalAddLiquidityQuote(_quoteTokenAmount,_slippageBps)](contracts/v2/strategies/RamosStrategy.sol#L174)\n", + "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L165-L175", + "id": "b56d2f4548e025710d998bc242ac7f3032f0e8ea504c62f800fead5160f65786", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "proportionalRemoveLiquidityQuote", + "source_mapping": { + "start": 7587, + "length": 438, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TempleUniswapV2Pair.constructor(address,address,address)._token1 (contracts/amm/TempleUniswapV2Pair.sol#67) lacks a zero-check on :\n\t\t- token1 = _token1 (contracts/amm/TempleUniswapV2Pair.sol#70)\n", - "markdown": "[TempleUniswapV2Pair.constructor(address,address,address)._token1](contracts/amm/TempleUniswapV2Pair.sol#L67) lacks a zero-check on :\n\t\t- [token1 = _token1](contracts/amm/TempleUniswapV2Pair.sol#L70)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L67", - "id": "690db18543951330bfe14086929ed1a80aa7c5c43d413a52b921411451479889", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_router", - "source_mapping": { - "start": 2904, - "length": 15, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 74 - ], - "starting_column": 24, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setRouter", - "source_mapping": { - "start": 2885, - "length": 140, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setRouter(address)" - } - } - } - }, - { - "type": "node", - "name": "router = _router", - "source_mapping": { - "start": 3002, - "length": 16, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 76 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setRouter", - "source_mapping": { - "start": 2885, - "length": 140, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setRouter(address)" - } - } - } + }, + "signature": "proportionalRemoveLiquidityQuote(uint256,uint256)" + } + }, + { + "type": "node", + "name": "ramos.poolHelper().proportionalRemoveLiquidityQuote(_bptAmount,_slippageBps)", + "source_mapping": { + "start": 7934, + "length": 84, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [202], + "starting_column": 9, + "ending_column": 93 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "proportionalRemoveLiquidityQuote", + "source_mapping": { + "start": 7587, + "length": 438, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "proportionalRemoveLiquidityQuote(uint256,uint256)" } - ], - "description": "TempleUniswapV2Pair.setRouter(address)._router (contracts/amm/TempleUniswapV2Pair.sol#74) lacks a zero-check on :\n\t\t- router = _router (contracts/amm/TempleUniswapV2Pair.sol#76)\n", - "markdown": "[TempleUniswapV2Pair.setRouter(address)._router](contracts/amm/TempleUniswapV2Pair.sol#L74) lacks a zero-check on :\n\t\t- [router = _router](contracts/amm/TempleUniswapV2Pair.sol#L76)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L74", - "id": "65b7f26867d221829e7395a702a30581f77ebb909c900aa9dc269f7dd15923d0", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_recipient", - "source_mapping": { - "start": 1683, - "length": 18, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 34, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setRewardsRecipient", - "source_mapping": { - "start": 1654, - "length": 179, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setRewardsRecipient(address)" - } - } - } - }, - { - "type": "node", - "name": "rewardsRecipient = _recipient", - "source_mapping": { - "start": 1750, - "length": 29, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setRewardsRecipient", - "source_mapping": { - "start": 1654, - "length": 179, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setRewardsRecipient(address)" - } - } - } + } + } + } + ], + "description": "RamosStrategy.proportionalRemoveLiquidityQuote(uint256,uint256) (contracts/v2/strategies/RamosStrategy.sol#192-203) ignores return value by ramos.poolHelper().proportionalRemoveLiquidityQuote(_bptAmount,_slippageBps) (contracts/v2/strategies/RamosStrategy.sol#202)\n", + "markdown": "[RamosStrategy.proportionalRemoveLiquidityQuote(uint256,uint256)](contracts/v2/strategies/RamosStrategy.sol#L192-L203) ignores return value by [ramos.poolHelper().proportionalRemoveLiquidityQuote(_bptAmount,_slippageBps)](contracts/v2/strategies/RamosStrategy.sol#L202)\n", + "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L192-L203", + "id": "ed71e6585e1914cd70e3ed747dea0a932bd4ba9629191c626628ce16c695c11d", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "populateShutdownData", + "source_mapping": { + "start": 9022, + "length": 564, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "AuraStaking.setRewardsRecipient(address)._recipient (contracts/amo/AuraStaking.sol#48) lacks a zero-check on :\n\t\t- rewardsRecipient = _recipient (contracts/amo/AuraStaking.sol#49)\n", - "markdown": "[AuraStaking.setRewardsRecipient(address)._recipient](contracts/amo/AuraStaking.sol#L48) lacks a zero-check on :\n\t\t- [rewardsRecipient = _recipient](contracts/amo/AuraStaking.sol#L49)\n", - "first_markdown_element": "contracts/amo/AuraStaking.sol#L48", - "id": "5563fec2719988c18a09b1c9b98748a0700c5a09c84dd2f6ec51e7b0796b0c80", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_feeCollector", - "source_mapping": { - "start": 4831, - "length": 21, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 113 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 4519, - "length": 995, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,address,address,address,address,address,uint64,bytes32,address,uint256)" - } - } - } - }, - { - "type": "node", - "name": "feeCollector = _feeCollector", - "source_mapping": { - "start": 5312, - "length": 28, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 123 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 4519, - "length": 995, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,address,address,address,address,address,uint64,bytes32,address,uint256)" - } - } - } + }, + "signature": "populateShutdownData(bytes)" + } + }, + { + "type": "node", + "name": "(shutdownParams.bptAmount,None,None) = ramos.positions()", + "source_mapping": { + "start": 9349, + "length": 48, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [240], + "starting_column": 9, + "ending_column": 57 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "populateShutdownData", + "source_mapping": { + "start": 9022, + "length": 564, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "populateShutdownData(bytes)" } - ], - "description": "Ramos.constructor(address,address,address,address,address,address,address,uint64,bytes32,address,uint256)._feeCollector (contracts/amo/Ramos.sol#113) lacks a zero-check on :\n\t\t- feeCollector = _feeCollector (contracts/amo/Ramos.sol#123)\n", - "markdown": "[Ramos.constructor(address,address,address,address,address,address,address,uint64,bytes32,address,uint256)._feeCollector](contracts/amo/Ramos.sol#L113) lacks a zero-check on :\n\t\t- [feeCollector = _feeCollector](contracts/amo/Ramos.sol#L123)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L113", - "id": "d859e385f8bd8eca35f31a74169347836938cb1a82d4c8321f358ad5363d6ed4", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_amo", - "source_mapping": { - "start": 1614, - "length": 12, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 41 - ], - "starting_column": 7, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1451, - "length": 622, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BalancerPoolHelper", - "source_mapping": { - "start": 739, - "length": 19014, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,address,address,address,address,uint64,bytes32)" - } - } - } - }, - { - "type": "node", - "name": "amo = _amo", - "source_mapping": { - "start": 1988, - "length": 10, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 51 - ], - "starting_column": 7, - "ending_column": 17 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1451, - "length": 622, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BalancerPoolHelper", - "source_mapping": { - "start": 739, - "length": 19014, - "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", - "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,address,address,address,address,uint64,bytes32)" - } - } - } + } + } + } + ], + "description": "RamosStrategy.populateShutdownData(bytes) (contracts/v2/strategies/RamosStrategy.sol#232-243) ignores return value by (shutdownParams.bptAmount,None,None) = ramos.positions() (contracts/v2/strategies/RamosStrategy.sol#240)\n", + "markdown": "[RamosStrategy.populateShutdownData(bytes)](contracts/v2/strategies/RamosStrategy.sol#L232-L243) ignores return value by [(shutdownParams.bptAmount,None,None) = ramos.positions()](contracts/v2/strategies/RamosStrategy.sol#L240)\n", + "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L232-L243", + "id": "e68b668794a623b6a5a283b3672d9ddf56508b69062c77c9f4af7f0faf1aa51e", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_doShutdown", + "source_mapping": { + "start": 9818, + "length": 631, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "BalancerPoolHelper.constructor(address,address,address,address,address,address,uint64,bytes32)._amo (contracts/amo/helpers/BalancerPoolHelper.sol#41) lacks a zero-check on :\n\t\t- amo = _amo (contracts/amo/helpers/BalancerPoolHelper.sol#51)\n", - "markdown": "[BalancerPoolHelper.constructor(address,address,address,address,address,address,uint64,bytes32)._amo](contracts/amo/helpers/BalancerPoolHelper.sol#L41) lacks a zero-check on :\n\t\t- [amo = _amo](contracts/amo/helpers/BalancerPoolHelper.sol#L51)\n", - "first_markdown_element": "contracts/amo/helpers/BalancerPoolHelper.sol#L41", - "id": "1a4d31b221d02b3c425c477d2b7e4c6dc1e41557697509c8e152170c2f1f7986", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_fundsOwner", - "source_mapping": { - "start": 3149, - "length": 19, - "filename_relative": "contracts/core/OtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OtcOffer.sol", - "filename_short": "contracts/core/OtcOffer.sol", - "is_dependency": false, - "lines": [ - 72 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 3065, - "length": 1117, - "filename_relative": "contracts/core/OtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OtcOffer.sol", - "filename_short": "contracts/core/OtcOffer.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OtcOffer", - "source_mapping": { - "start": 847, - "length": 6468, - "filename_relative": "contracts/core/OtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OtcOffer.sol", - "filename_short": "contracts/core/OtcOffer.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(address,address,address,uint256,OtcOffer.OfferPricingToken,uint128,uint128)" - } - } - } - }, - { - "type": "node", - "name": "fundsOwner = _fundsOwner", - "source_mapping": { - "start": 3444, - "length": 24, - "filename_relative": "contracts/core/OtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OtcOffer.sol", - "filename_short": "contracts/core/OtcOffer.sol", - "is_dependency": false, - "lines": [ - 80 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 3065, - "length": 1117, - "filename_relative": "contracts/core/OtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OtcOffer.sol", - "filename_short": "contracts/core/OtcOffer.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OtcOffer", - "source_mapping": { - "start": 847, - "length": 6468, - "filename_relative": "contracts/core/OtcOffer.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OtcOffer.sol", - "filename_short": "contracts/core/OtcOffer.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(address,address,address,uint256,OtcOffer.OfferPricingToken,uint128,uint128)" - } - } - } + }, + "signature": "_doShutdown(bytes)" + } + }, + { + "type": "node", + "name": "ramos.removeLiquidity(params.requestData,params.bptAmount)", + "source_mapping": { + "start": 9989, + "length": 59, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [252], + "starting_column": 9, + "ending_column": 68 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_doShutdown", + "source_mapping": { + "start": 9818, + "length": 631, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_doShutdown(bytes)" } - ], - "description": "OtcOffer.constructor(address,address,address,uint256,OtcOffer.OfferPricingToken,uint128,uint128)._fundsOwner (contracts/core/OtcOffer.sol#72) lacks a zero-check on :\n\t\t- fundsOwner = _fundsOwner (contracts/core/OtcOffer.sol#80)\n", - "markdown": "[OtcOffer.constructor(address,address,address,uint256,OtcOffer.OfferPricingToken,uint128,uint128)._fundsOwner](contracts/core/OtcOffer.sol#L72) lacks a zero-check on :\n\t\t- [fundsOwner = _fundsOwner](contracts/core/OtcOffer.sol#L80)\n", - "first_markdown_element": "contracts/core/OtcOffer.sol#L72", - "id": "318c72045beea63d39db91e2c64959d93dbfe0e966ec4e74e6cbf32f20a24e68", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_gnosisSafeWallet", - "source_mapping": { - "start": 1642, - "length": 25, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 41 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1477, - "length": 459, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,string,address,address,address)" - } - } - } - }, - { - "type": "node", - "name": "gnosisSafeWallet = _gnosisSafeWallet", - "source_mapping": { - "start": 1813, - "length": 36, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 44 - ], - "starting_column": 9, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1477, - "length": 459, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(address,address,string,address,address,address)" - } - } - } + } + } + } + ], + "description": "RamosStrategy._doShutdown(bytes) (contracts/v2/strategies/RamosStrategy.sol#250-263) ignores return value by ramos.removeLiquidity(params.requestData,params.bptAmount) (contracts/v2/strategies/RamosStrategy.sol#252)\n", + "markdown": "[RamosStrategy._doShutdown(bytes)](contracts/v2/strategies/RamosStrategy.sol#L250-L263) ignores return value by [ramos.removeLiquidity(params.requestData,params.bptAmount)](contracts/v2/strategies/RamosStrategy.sol#L252)\n", + "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L250-L263", + "id": "cab4a6d607fc52a73a76b47684750061e88667af7fd3a9cc5e85e235479031b6", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "setTlcStrategy", + "source_mapping": { + "start": 15688, + "length": 819, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, + 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, + 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, + 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "GnosisStrategy.constructor(address,address,string,address,address,address)._gnosisSafeWallet (contracts/v2/strategies/GnosisStrategy.sol#41) lacks a zero-check on :\n\t\t- gnosisSafeWallet = _gnosisSafeWallet (contracts/v2/strategies/GnosisStrategy.sol#44)\n", - "markdown": "[GnosisStrategy.constructor(address,address,string,address,address,address)._gnosisSafeWallet](contracts/v2/strategies/GnosisStrategy.sol#L41) lacks a zero-check on :\n\t\t- [gnosisSafeWallet = _gnosisSafeWallet](contracts/v2/strategies/GnosisStrategy.sol#L44)\n", - "first_markdown_element": "contracts/v2/strategies/GnosisStrategy.sol#L41", - "id": "35341096e7cc1cb2d71fe6962d37434197ec4866db8dda0c2c8cd05c17585e33", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_implementation", - "source_mapping": { - "start": 1224, - "length": 23, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 40 - ], - "starting_column": 17, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1212, - "length": 210, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(address,uint16)" - } - } - } - }, - { - "type": "node", - "name": "templeTeamPaymentsImplementation = _implementation", - "source_mapping": { - "start": 1282, - "length": 50, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 41 - ], - "starting_column": 9, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1212, - "length": 210, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(address,uint16)" - } - } - } + }, + "signature": "setTlcStrategy(address)" + } + }, + { + "type": "node", + "name": "daiToken.approve(previousTrv,0)", + "source_mapping": { + "start": 16002, + "length": 32, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [394], + "starting_column": 13, + "ending_column": 45 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTlcStrategy", + "source_mapping": { + "start": 15688, + "length": 819, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTlcStrategy(address)" } - ], - "description": "TempleTeamPaymentsFactory.constructor(address,uint16)._implementation (contracts/admin/TempleTeamPaymentsFactory.sol#40) lacks a zero-check on :\n\t\t- templeTeamPaymentsImplementation = _implementation (contracts/admin/TempleTeamPaymentsFactory.sol#41)\n", - "markdown": "[TempleTeamPaymentsFactory.constructor(address,uint16)._implementation](contracts/admin/TempleTeamPaymentsFactory.sol#L40) lacks a zero-check on :\n\t\t- [templeTeamPaymentsImplementation = _implementation](contracts/admin/TempleTeamPaymentsFactory.sol#L41)\n", - "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L40", - "id": "da87c5c8c1b8544472d505a239a86c8fd5eef6af865588f2c95eaae614f5b72a", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_defendStable", - "source_mapping": { - "start": 1200, - "length": 22, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 40 - ], - "starting_column": 13, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1091, - "length": 271, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(TempleERC20Token,ITreasuryIV,address)" - } - } - } - }, - { - "type": "node", - "name": "defendStable = _defendStable", - "source_mapping": { - "start": 1326, - "length": 29, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 45 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1091, - "length": 271, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(TempleERC20Token,ITreasuryIV,address)" - } - } - } + } + } + } + ], + "description": "TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-409) ignores return value by daiToken.approve(previousTrv,0) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#394)\n", + "markdown": "[TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L409) ignores return value by [daiToken.approve(previousTrv,0)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)\n", + "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L409", + "id": "5fa79b657e0f64d022302a3a9b887d1ab1e0a67d8ba497e49c5d707e4f4d8bb3", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "quoteToken", + "source_mapping": { + "start": 4822, + "length": 18, + "filename_relative": "contracts/interfaces/amo/IRamos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/amo/IRamos.sol", + "filename_short": "contracts/interfaces/amo/IRamos.sol", + "is_dependency": false, + "lines": [103], + "starting_column": 9, + "ending_column": 27 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "maxRebalanceAmounts", + "source_mapping": { + "start": 4738, + "length": 140, + "filename_relative": "contracts/interfaces/amo/IRamos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/amo/IRamos.sol", + "filename_short": "contracts/interfaces/amo/IRamos.sol", + "is_dependency": false, + "lines": [101, 102, 103, 104, 105], + "starting_column": 5, + "ending_column": 7 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "IRamos", + "source_mapping": { + "start": 1408, + "length": 10519, + "filename_relative": "contracts/interfaces/amo/IRamos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/amo/IRamos.sol", + "filename_short": "contracts/interfaces/amo/IRamos.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "maxRebalanceAmounts()" } - ], - "description": "TempleStableAMMRouter.constructor(TempleERC20Token,ITreasuryIV,address)._defendStable (contracts/amm/TempleStableAMMRouter.sol#40) lacks a zero-check on :\n\t\t- defendStable = _defendStable (contracts/amm/TempleStableAMMRouter.sol#45)\n", - "markdown": "[TempleStableAMMRouter.constructor(TempleERC20Token,ITreasuryIV,address)._defendStable](contracts/amm/TempleStableAMMRouter.sol#L40) lacks a zero-check on :\n\t\t- [defendStable = _defendStable](contracts/amm/TempleStableAMMRouter.sol#L45)\n", - "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L40", - "id": "8e8b46a3e001386612a0920cae43f3178af46f175ae977aa5f36adc5662d1cda", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_defendStable", - "source_mapping": { - "start": 1632, - "length": 21, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 30, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setDefendStable", - "source_mapping": { - "start": 1607, - "length": 112, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setDefendStable(address)" - } - } - } - }, - { - "type": "node", - "name": "defendStable = _defendStable", - "source_mapping": { - "start": 1684, - "length": 28, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 57 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setDefendStable", - "source_mapping": { - "start": 1607, - "length": 112, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setDefendStable(address)" - } - } - } + } + } + }, + { + "type": "function", + "name": "quoteToken", + "source_mapping": { + "start": 3767, + "length": 53, + "filename_relative": "contracts/interfaces/amo/IRamos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/amo/IRamos.sol", + "filename_short": "contracts/interfaces/amo/IRamos.sol", + "is_dependency": false, + "lines": [80], + "starting_column": 5, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "IRamos", + "source_mapping": { + "start": 1408, + "length": 10519, + "filename_relative": "contracts/interfaces/amo/IRamos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/amo/IRamos.sol", + "filename_short": "contracts/interfaces/amo/IRamos.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TempleStableAMMRouter.setDefendStable(address)._defendStable (contracts/amm/TempleStableAMMRouter.sol#56) lacks a zero-check on :\n\t\t- defendStable = _defendStable (contracts/amm/TempleStableAMMRouter.sol#57)\n", - "markdown": "[TempleStableAMMRouter.setDefendStable(address)._defendStable](contracts/amm/TempleStableAMMRouter.sol#L56) lacks a zero-check on :\n\t\t- [defendStable = _defendStable](contracts/amm/TempleStableAMMRouter.sol#L57)\n", - "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L56", - "id": "de02254c0f567ff1a6e8223d4826abf485c07990091f962338f7c0fa067431d5", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_vaultedTempleAccount", - "source_mapping": { - "start": 2796, - "length": 29, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 2647, - "length": 819, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)" - } - } - } - }, - { - "type": "node", - "name": "vaultedTempleAccount = _vaultedTempleAccount", - "source_mapping": { - "start": 3167, - "length": 44, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 78 - ], - "starting_column": 9, - "ending_column": 53 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 2647, - "length": 819, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)" - } - } - } + }, + "signature": "quoteToken()" + } + } + ], + "description": "IRamos.maxRebalanceAmounts().quoteToken (contracts/interfaces/amo/IRamos.sol#103) shadows:\n\t- IRamos.quoteToken() (contracts/interfaces/amo/IRamos.sol#80) (function)\n", + "markdown": "[IRamos.maxRebalanceAmounts().quoteToken](contracts/interfaces/amo/IRamos.sol#L103) shadows:\n\t- [IRamos.quoteToken()](contracts/interfaces/amo/IRamos.sol#L80) (function)\n", + "first_markdown_element": "contracts/interfaces/amo/IRamos.sol#L103", + "id": "a030cfdb07ff13cdfeb8487608a714d3b198ff28886a8ef272f9e70a87a70f0a", + "check": "shadowing-local", + "impact": "Low", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "protocolToken", + "source_mapping": { + "start": 4850, + "length": 21, + "filename_relative": "contracts/interfaces/amo/IRamos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/amo/IRamos.sol", + "filename_short": "contracts/interfaces/amo/IRamos.sol", + "is_dependency": false, + "lines": [104], + "starting_column": 9, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "maxRebalanceAmounts", + "source_mapping": { + "start": 4738, + "length": 140, + "filename_relative": "contracts/interfaces/amo/IRamos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/amo/IRamos.sol", + "filename_short": "contracts/interfaces/amo/IRamos.sol", + "is_dependency": false, + "lines": [101, 102, 103, 104, 105], + "starting_column": 5, + "ending_column": 7 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "IRamos", + "source_mapping": { + "start": 1408, + "length": 10519, + "filename_relative": "contracts/interfaces/amo/IRamos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/amo/IRamos.sol", + "filename_short": "contracts/interfaces/amo/IRamos.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "maxRebalanceAmounts()" } - ], - "description": "Vault.constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)._vaultedTempleAccount (contracts/core/Vault.sol#69) lacks a zero-check on :\n\t\t- vaultedTempleAccount = _vaultedTempleAccount (contracts/core/Vault.sol#78)\n", - "markdown": "[Vault.constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)._vaultedTempleAccount](contracts/core/Vault.sol#L69) lacks a zero-check on :\n\t\t- [vaultedTempleAccount = _vaultedTempleAccount](contracts/core/Vault.sol#L78)\n", - "first_markdown_element": "contracts/core/Vault.sol#L69", - "id": "222c440a9dfe634640e1dbd4fff56612fe2321415f49dc4ec16114fa6ec260ed", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "_templeExposure", - "source_mapping": { - "start": 1380, - "length": 23, - "filename_relative": "contracts/core/VaultedTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultedTemple.sol", - "filename_short": "contracts/core/VaultedTemple.sol", - "is_dependency": false, - "lines": [ - 39 - ], - "starting_column": 38, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1347, - "length": 143, - "filename_relative": "contracts/core/VaultedTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultedTemple.sol", - "filename_short": "contracts/core/VaultedTemple.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultedTemple", - "source_mapping": { - "start": 1207, - "length": 1005, - "filename_relative": "contracts/core/VaultedTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultedTemple.sol", - "filename_short": "contracts/core/VaultedTemple.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(IERC20,address)" - } - } - } - }, - { - "type": "node", - "name": "templeExposure = _templeExposure", - "source_mapping": { - "start": 1451, - "length": 32, - "filename_relative": "contracts/core/VaultedTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultedTemple.sol", - "filename_short": "contracts/core/VaultedTemple.sol", - "is_dependency": false, - "lines": [ - 41 - ], - "starting_column": 9, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1347, - "length": 143, - "filename_relative": "contracts/core/VaultedTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultedTemple.sol", - "filename_short": "contracts/core/VaultedTemple.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultedTemple", - "source_mapping": { - "start": 1207, - "length": 1005, - "filename_relative": "contracts/core/VaultedTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultedTemple.sol", - "filename_short": "contracts/core/VaultedTemple.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(IERC20,address)" - } - } - } + } + } + }, + { + "type": "function", + "name": "protocolToken", + "source_mapping": { + "start": 3567, + "length": 56, + "filename_relative": "contracts/interfaces/amo/IRamos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/amo/IRamos.sol", + "filename_short": "contracts/interfaces/amo/IRamos.sol", + "is_dependency": false, + "lines": [76], + "starting_column": 5, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "IRamos", + "source_mapping": { + "start": 1408, + "length": 10519, + "filename_relative": "contracts/interfaces/amo/IRamos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/amo/IRamos.sol", + "filename_short": "contracts/interfaces/amo/IRamos.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "VaultedTemple.constructor(IERC20,address)._templeExposure (contracts/core/VaultedTemple.sol#39) lacks a zero-check on :\n\t\t- templeExposure = _templeExposure (contracts/core/VaultedTemple.sol#41)\n", - "markdown": "[VaultedTemple.constructor(IERC20,address)._templeExposure](contracts/core/VaultedTemple.sol#L39) lacks a zero-check on :\n\t\t- [templeExposure = _templeExposure](contracts/core/VaultedTemple.sol#L41)\n", - "first_markdown_element": "contracts/core/VaultedTemple.sol#L39", - "id": "2fcc44b40158b30b8b0d1614ffa673ffe544de75b922fdda079eea29dca64415", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "getReward", - "source_mapping": { - "start": 4291, - "length": 657, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "getReward(bool)" - } - }, - { - "type": "node", - "name": "balance = rewardToken.balanceOf(address(this))", - "source_mapping": { - "start": 4735, - "length": 54, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 118 - ], - "starting_column": 17, - "ending_column": 71 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "getReward", - "source_mapping": { - "start": 4291, - "length": 657, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "getReward(bool)" - } - } - } + }, + "signature": "protocolToken()" + } + } + ], + "description": "IRamos.maxRebalanceAmounts().protocolToken (contracts/interfaces/amo/IRamos.sol#104) shadows:\n\t- IRamos.protocolToken() (contracts/interfaces/amo/IRamos.sol#76) (function)\n", + "markdown": "[IRamos.maxRebalanceAmounts().protocolToken](contracts/interfaces/amo/IRamos.sol#L104) shadows:\n\t- [IRamos.protocolToken()](contracts/interfaces/amo/IRamos.sol#L76) (function)\n", + "first_markdown_element": "contracts/interfaces/amo/IRamos.sol#L104", + "id": "99988e8d4356d61dc22dc1203ce47d52bd194ee6c04869d1c08b03332a4a64b3", + "check": "shadowing-local", + "impact": "Low", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "baseShares", + "source_mapping": { + "start": 3468, + "length": 18, + "filename_relative": "contracts/interfaces/v2/ITempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITempleDebtToken.sol", + "filename_short": "contracts/interfaces/v2/ITempleDebtToken.sol", + "is_dependency": false, + "lines": [86], + "starting_column": 9, + "ending_column": 27 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "debtors", + "source_mapping": { + "start": 3219, + "length": 737, + "filename_relative": "contracts/interfaces/v2/ITempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITempleDebtToken.sol", + "filename_short": "contracts/interfaces/v2/ITempleDebtToken.sol", + "is_dependency": false, + "lines": [ + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97 + ], + "starting_column": 5, + "ending_column": 7 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ITempleDebtToken", + "source_mapping": { + "start": 325, + "length": 8309, + "filename_relative": "contracts/interfaces/v2/ITempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITempleDebtToken.sol", + "filename_short": "contracts/interfaces/v2/ITempleDebtToken.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "debtors(address)" } - ], - "description": "AuraStaking.getReward(bool) (contracts/amo/AuraStaking.sol#110-125) has external calls inside a loop: balance = rewardToken.balanceOf(address(this)) (contracts/amo/AuraStaking.sol#118)\n", - "markdown": "[AuraStaking.getReward(bool)](contracts/amo/AuraStaking.sol#L110-L125) has external calls inside a loop: [balance = rewardToken.balanceOf(address(this))](contracts/amo/AuraStaking.sol#L118)\n", - "first_markdown_element": "contracts/amo/AuraStaking.sol#L110-L125", - "id": "dab641382da7356da589d9f335e183a99e5e9d0e41793c5d48158d07f1c57272", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "shutdown", - "source_mapping": { - "start": 11822, - "length": 1632, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shutdown(address)" - } - }, - { - "type": "node", - "name": "_outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy)", - "source_mapping": { - "start": 12499, - "length": 64, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 296 - ], - "starting_column": 13, - "ending_column": 77 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shutdown", - "source_mapping": { - "start": 11822, - "length": 1632, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shutdown(address)" - } - } - } + } + } + }, + { + "type": "function", + "name": "baseShares", + "source_mapping": { + "start": 1667, + "length": 54, + "filename_relative": "contracts/interfaces/v2/ITempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITempleDebtToken.sol", + "filename_short": "contracts/interfaces/v2/ITempleDebtToken.sol", + "is_dependency": false, + "lines": [42], + "starting_column": 5, + "ending_column": 59 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ITempleDebtToken", + "source_mapping": { + "start": 325, + "length": 8309, + "filename_relative": "contracts/interfaces/v2/ITempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITempleDebtToken.sol", + "filename_short": "contracts/interfaces/v2/ITempleDebtToken.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319) has external calls inside a loop: _outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy) (contracts/v2/TreasuryReservesVault.sol#296)\n", - "markdown": "[TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319) has external calls inside a loop: [_outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy)](contracts/v2/TreasuryReservesVault.sol#L296)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L283-L319", - "id": "319ffc2aa8a4b776f15de07870a0d4d5abe0125bc3d87d10222a70895adf8bba", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "strategyBalanceSheet", - "source_mapping": { - "start": 19539, - "length": 1196, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "strategyBalanceSheet(address)" - } - }, - { - "type": "node", - "name": "dTokenBalances[i] = ITempleStrategy.AssetBalance(_token,borrowTokens[IERC20(_token)].dToken.balanceOf(strategy))", - "source_mapping": { - "start": 20490, - "length": 113, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 464 - ], - "starting_column": 13, - "ending_column": 126 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "strategyBalanceSheet", - "source_mapping": { - "start": 19539, - "length": 1196, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "strategyBalanceSheet(address)" - } - } - } + }, + "signature": "baseShares()" + } + } + ], + "description": "ITempleDebtToken.debtors(address).baseShares (contracts/interfaces/v2/ITempleDebtToken.sol#86) shadows:\n\t- ITempleDebtToken.baseShares() (contracts/interfaces/v2/ITempleDebtToken.sol#42) (function)\n", + "markdown": "[ITempleDebtToken.debtors(address).baseShares](contracts/interfaces/v2/ITempleDebtToken.sol#L86) shadows:\n\t- [ITempleDebtToken.baseShares()](contracts/interfaces/v2/ITempleDebtToken.sol#L42) (function)\n", + "first_markdown_element": "contracts/interfaces/v2/ITempleDebtToken.sol#L86", + "id": "660d8ad3fe151743a4b6eac08ff790cbd92361508e6a7e1ac51d359fbd40579a", + "check": "shadowing-local", + "impact": "Low", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "borrow", + "source_mapping": { + "start": 11494, + "length": 11, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [291], + "starting_column": 30, + "ending_column": 41 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setGlobalPaused", + "source_mapping": { + "start": 11469, + "length": 60, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [291], + "starting_column": 5, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ITreasuryReservesVault", + "source_mapping": { + "start": 1896, + "length": 12436, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setGlobalPaused(bool,bool)" } - ], - "description": "TreasuryReservesVault.strategyBalanceSheet(address) (contracts/v2/TreasuryReservesVault.sol#447-467) has external calls inside a loop: dTokenBalances[i] = ITempleStrategy.AssetBalance(_token,borrowTokens[IERC20(_token)].dToken.balanceOf(strategy)) (contracts/v2/TreasuryReservesVault.sol#464)\n", - "markdown": "[TreasuryReservesVault.strategyBalanceSheet(address)](contracts/v2/TreasuryReservesVault.sol#L447-L467) has external calls inside a loop: [dTokenBalances[i] = ITempleStrategy.AssetBalance(_token,borrowTokens[IERC20(_token)].dToken.balanceOf(strategy))](contracts/v2/TreasuryReservesVault.sol#L464)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L447-L467", - "id": "20bcad4f9996938c51c34e640ba88b7c6f2e553a9bfd34b0e170bf1b1904292b", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "latestAssetBalances", - "source_mapping": { - "start": 6069, - "length": 754, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "latestAssetBalances()" - } - }, - { - "type": "node", - "name": "_gnosisBalance = (IERC20(_asset).balanceOf(gnosisSafeWallet) + IERC20(_asset).balanceOf(address(this)))", - "source_mapping": { - "start": 6422, - "length": 250, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 13, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "latestAssetBalances", - "source_mapping": { - "start": 6069, - "length": 754, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "latestAssetBalances()" - } - } - } + } + } + }, + { + "type": "function", + "name": "borrow", + "source_mapping": { + "start": 13392, + "length": 80, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [336], + "starting_column": 5, + "ending_column": 85 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ITreasuryReservesVault", + "source_mapping": { + "start": 1896, + "length": 12436, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "GnosisStrategy.latestAssetBalances() (contracts/v2/strategies/GnosisStrategy.sol#155-177) has external calls inside a loop: _gnosisBalance = (IERC20(_asset).balanceOf(gnosisSafeWallet) + IERC20(_asset).balanceOf(address(this))) (contracts/v2/strategies/GnosisStrategy.sol#165-170)\n", - "markdown": "[GnosisStrategy.latestAssetBalances()](contracts/v2/strategies/GnosisStrategy.sol#L155-L177) has external calls inside a loop: [_gnosisBalance = (IERC20(_asset).balanceOf(gnosisSafeWallet) + IERC20(_asset).balanceOf(address(this)))](contracts/v2/strategies/GnosisStrategy.sol#L165-L170)\n", - "first_markdown_element": "contracts/v2/strategies/GnosisStrategy.sol#L155-L177", - "id": "303fe06184eefb239bc471a22808ec3f7ce192673117af8e628268271f896623", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "addRevenue", - "source_mapping": { - "start": 3615, - "length": 351, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "addRevenue(IERC20[],uint256[])" - } - }, - { - "type": "node", - "name": "pools[exposureTokens[i]].addRevenue(amounts[i])", - "source_mapping": { - "start": 3902, - "length": 47, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 114 - ], - "starting_column": 13, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addRevenue", - "source_mapping": { - "start": 3615, - "length": 351, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "addRevenue(IERC20[],uint256[])" - } - } - } + }, + "signature": "borrow(IERC20,uint256,address)" + } + } + ], + "description": "ITreasuryReservesVault.setGlobalPaused(bool,bool).borrow (contracts/interfaces/v2/ITreasuryReservesVault.sol#291) shadows:\n\t- ITreasuryReservesVault.borrow(IERC20,uint256,address) (contracts/interfaces/v2/ITreasuryReservesVault.sol#336) (function)\n", + "markdown": "[ITreasuryReservesVault.setGlobalPaused(bool,bool).borrow](contracts/interfaces/v2/ITreasuryReservesVault.sol#L291) shadows:\n\t- [ITreasuryReservesVault.borrow(IERC20,uint256,address)](contracts/interfaces/v2/ITreasuryReservesVault.sol#L336) (function)\n", + "first_markdown_element": "contracts/interfaces/v2/ITreasuryReservesVault.sol#L291", + "id": "ee178bdb812ac154f4b12235ea96012285731106c401b64ca146c3171f9f2b58", + "check": "shadowing-local", + "impact": "Low", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "borrow", + "source_mapping": { + "start": 11679, + "length": 11, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [296], + "starting_column": 50, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setStrategyPaused", + "source_mapping": { + "start": 11634, + "length": 80, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [296], + "starting_column": 5, + "ending_column": 85 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ITreasuryReservesVault", + "source_mapping": { + "start": 1896, + "length": 12436, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setStrategyPaused(address,bool,bool)" } - ], - "description": "OpsManager.addRevenue(IERC20[],uint256[]) (contracts/core/OpsManager.sol#110-116) has external calls inside a loop: pools[exposureTokens[i]].addRevenue(amounts[i]) (contracts/core/OpsManager.sol#114)\n", - "markdown": "[OpsManager.addRevenue(IERC20[],uint256[])](contracts/core/OpsManager.sol#L110-L116) has external calls inside a loop: [pools[exposureTokens[i]].addRevenue(amounts[i])](contracts/core/OpsManager.sol#L114)\n", - "first_markdown_element": "contracts/core/OpsManager.sol#L110-L116", - "id": "5665a1327173172c99a94790114d41a7287eb453518635edd48056ecba261fa4", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "increaseVaultTemple", - "source_mapping": { - "start": 4395, - "length": 447, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "increaseVaultTemple(Vault[],uint256[])" - } - }, - { - "type": "node", - "name": "templeExposure.mint(address(vaults[i]),amountsTemple[i])", - "source_mapping": { - "start": 4768, - "length": 57, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 135 - ], - "starting_column": 13, - "ending_column": 70 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "increaseVaultTemple", - "source_mapping": { - "start": 4395, - "length": 447, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "increaseVaultTemple(Vault[],uint256[])" - } - } - } + } + } + }, + { + "type": "function", + "name": "borrow", + "source_mapping": { + "start": 13392, + "length": 80, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [336], + "starting_column": 5, + "ending_column": 85 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ITreasuryReservesVault", + "source_mapping": { + "start": 1896, + "length": 12436, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "OpsManager.increaseVaultTemple(Vault[],uint256[]) (contracts/core/OpsManager.sol#130-137) has external calls inside a loop: templeExposure.mint(address(vaults[i]),amountsTemple[i]) (contracts/core/OpsManager.sol#135)\n", - "markdown": "[OpsManager.increaseVaultTemple(Vault[],uint256[])](contracts/core/OpsManager.sol#L130-L137) has external calls inside a loop: [templeExposure.mint(address(vaults[i]),amountsTemple[i])](contracts/core/OpsManager.sol#L135)\n", - "first_markdown_element": "contracts/core/OpsManager.sol#L130-L137", - "id": "73ad477fce052d6df52f4050312b09c115d39ab6a4163386fdb2d902cdf8d2a5", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "liquidateExposures", - "source_mapping": { - "start": 5038, - "length": 531, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "liquidateExposures(Vault[],IERC20[])" - } - }, - { - "type": "node", - "name": "exposures[i] = pools[exposureTokens[i]].exposure()", - "source_mapping": { - "start": 5294, - "length": 50, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 148 - ], - "starting_column": 13, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "liquidateExposures", - "source_mapping": { - "start": 5038, - "length": 531, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "liquidateExposures(Vault[],IERC20[])" - } - } - } + }, + "signature": "borrow(IERC20,uint256,address)" + } + } + ], + "description": "ITreasuryReservesVault.setStrategyPaused(address,bool,bool).borrow (contracts/interfaces/v2/ITreasuryReservesVault.sol#296) shadows:\n\t- ITreasuryReservesVault.borrow(IERC20,uint256,address) (contracts/interfaces/v2/ITreasuryReservesVault.sol#336) (function)\n", + "markdown": "[ITreasuryReservesVault.setStrategyPaused(address,bool,bool).borrow](contracts/interfaces/v2/ITreasuryReservesVault.sol#L296) shadows:\n\t- [ITreasuryReservesVault.borrow(IERC20,uint256,address)](contracts/interfaces/v2/ITreasuryReservesVault.sol#L336) (function)\n", + "first_markdown_element": "contracts/interfaces/v2/ITreasuryReservesVault.sol#L296", + "id": "1f2b144fa0b8083ee1a1ca697a2403bf2d85ddb7223aae096e89a677da991192", + "check": "shadowing-local", + "impact": "Low", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "_implementation", + "source_mapping": { + "start": 1224, + "length": 23, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [40], + "starting_column": 17, + "ending_column": 40 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 1212, + "length": 230, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [40, 41, 42, 43, 44], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "constructor(address,uint16)" } - ], - "description": "OpsManager.liquidateExposures(Vault[],IERC20[]) (contracts/core/OpsManager.sol#144-155) has external calls inside a loop: exposures[i] = pools[exposureTokens[i]].exposure() (contracts/core/OpsManager.sol#148)\n", - "markdown": "[OpsManager.liquidateExposures(Vault[],IERC20[])](contracts/core/OpsManager.sol#L144-L155) has external calls inside a loop: [exposures[i] = pools[exposureTokens[i]].exposure()](contracts/core/OpsManager.sol#L148)\n", - "first_markdown_element": "contracts/core/OpsManager.sol#L144-L155", - "id": "ead7d436da8a29569022b48ffddbfceb808c4dd315ce7ca9d743dc5226a168dc", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "liquidateExposures", - "source_mapping": { - "start": 5038, - "length": 531, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "liquidateExposures(Vault[],IERC20[])" - } - }, - { - "type": "node", - "name": "vaults[i_scope_0].redeemExposures(exposures)", - "source_mapping": { - "start": 5516, - "length": 36, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 153 - ], - "starting_column": 13, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "liquidateExposures", - "source_mapping": { - "start": 5038, - "length": 531, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "liquidateExposures(Vault[],IERC20[])" - } - } - } + } + } + }, + { + "type": "node", + "name": "templeTeamPaymentsImplementation = _implementation", + "source_mapping": { + "start": 1302, + "length": 50, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [41], + "starting_column": 9, + "ending_column": 59 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 1212, + "length": 230, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [40, 41, 42, 43, 44], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "constructor(address,uint16)" } - ], - "description": "OpsManager.liquidateExposures(Vault[],IERC20[]) (contracts/core/OpsManager.sol#144-155) has external calls inside a loop: vaults[i_scope_0].redeemExposures(exposures) (contracts/core/OpsManager.sol#153)\n", - "markdown": "[OpsManager.liquidateExposures(Vault[],IERC20[])](contracts/core/OpsManager.sol#L144-L155) has external calls inside a loop: [vaults[i_scope_0].redeemExposures(exposures)](contracts/core/OpsManager.sol#L153)\n", - "first_markdown_element": "contracts/core/OpsManager.sol#L144-L155", - "id": "03a21ffca7a3586cab7fab91c4d3c7df01b444412ef9a937d63e8d95d7ef5075", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "requiresRebalance", - "source_mapping": { - "start": 2821, - "length": 553, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "requiresRebalance(Vault[],TreasuryFarmingRevenue)" - } - }, - { - "type": "node", - "name": "(inWindow) = vaults[i].inEnterExitWindow()", - "source_mapping": { - "start": 3101, - "length": 49, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 86 - ], - "starting_column": 13, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "requiresRebalance", - "source_mapping": { - "start": 2821, - "length": 553, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "requiresRebalance(Vault[],TreasuryFarmingRevenue)" - } - } - } + } + } + } + ], + "description": "TempleTeamPaymentsFactory.constructor(address,uint16)._implementation (contracts/admin/TempleTeamPaymentsFactory.sol#40) lacks a zero-check on :\n\t\t- templeTeamPaymentsImplementation = _implementation (contracts/admin/TempleTeamPaymentsFactory.sol#41)\n", + "markdown": "[TempleTeamPaymentsFactory.constructor(address,uint16)._implementation](contracts/admin/TempleTeamPaymentsFactory.sol#L40) lacks a zero-check on :\n\t\t- [templeTeamPaymentsImplementation = _implementation](contracts/admin/TempleTeamPaymentsFactory.sol#L41)\n", + "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L40", + "id": "da87c5c8c1b8544472d505a239a86c8fd5eef6af865588f2c95eaae614f5b72a", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_defendStable", + "source_mapping": { + "start": 1200, + "length": 22, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [40], + "starting_column": 13, + "ending_column": 35 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 1091, + "length": 291, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [37, 38, 39, 40, 41, 42, 43, 44, 45, 46], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleStableAMMRouter", + "source_mapping": { + "start": 640, + "length": 8255, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(TempleERC20Token,ITreasuryIV,address)" } - ], - "description": "OpsManagerLib.requiresRebalance(Vault[],TreasuryFarmingRevenue) (contracts/core/OpsManagerLib.sol#79-95) has external calls inside a loop: (inWindow) = vaults[i].inEnterExitWindow() (contracts/core/OpsManagerLib.sol#86)\n", - "markdown": "[OpsManagerLib.requiresRebalance(Vault[],TreasuryFarmingRevenue)](contracts/core/OpsManagerLib.sol#L79-L95) has external calls inside a loop: [(inWindow) = vaults[i].inEnterExitWindow()](contracts/core/OpsManagerLib.sol#L86)\n", - "first_markdown_element": "contracts/core/OpsManagerLib.sol#L79-L95", - "id": "33abe3219d901465ec0025ed3b5cee25a23e8e043748dac853f60e352579796c", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "requiresRebalance", - "source_mapping": { - "start": 2821, - "length": 553, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "requiresRebalance(Vault[],TreasuryFarmingRevenue)" - } - }, - { - "type": "node", - "name": "requiresUpdate[i] = farmingPool.shares(address(vaults[i])) != vaults[i].targetRevenueShare()", - "source_mapping": { - "start": 3233, - "length": 92, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 91 - ], - "starting_column": 13, - "ending_column": 105 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "requiresRebalance", - "source_mapping": { - "start": 2821, - "length": 553, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "requiresRebalance(Vault[],TreasuryFarmingRevenue)" - } - } - } + } + } + }, + { + "type": "node", + "name": "defendStable = _defendStable", + "source_mapping": { + "start": 1346, + "length": 29, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [45], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 1091, + "length": 291, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [37, 38, 39, 40, 41, 42, 43, 44, 45, 46], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleStableAMMRouter", + "source_mapping": { + "start": 640, + "length": 8255, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(TempleERC20Token,ITreasuryIV,address)" } - ], - "description": "OpsManagerLib.requiresRebalance(Vault[],TreasuryFarmingRevenue) (contracts/core/OpsManagerLib.sol#79-95) has external calls inside a loop: requiresUpdate[i] = farmingPool.shares(address(vaults[i])) != vaults[i].targetRevenueShare() (contracts/core/OpsManagerLib.sol#91)\n", - "markdown": "[OpsManagerLib.requiresRebalance(Vault[],TreasuryFarmingRevenue)](contracts/core/OpsManagerLib.sol#L79-L95) has external calls inside a loop: [requiresUpdate[i] = farmingPool.shares(address(vaults[i])) != vaults[i].targetRevenueShare()](contracts/core/OpsManagerLib.sol#L91)\n", - "first_markdown_element": "contracts/core/OpsManagerLib.sol#L79-L95", - "id": "291eba1d32cb690e10f4480f7b32b2bae6d005ffbf40558ffd08cf8b0ce6ee4d", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "updateExposureReval", - "source_mapping": { - "start": 3380, - "length": 681, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" - } - }, - { - "type": "node", - "name": "exposure = pools[exposureTokens[i]].exposure()", - "source_mapping": { - "start": 3725, - "length": 55, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 101 - ], - "starting_column": 13, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "updateExposureReval", - "source_mapping": { - "start": 3380, - "length": 681, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" - } - } - } + } + } + } + ], + "description": "TempleStableAMMRouter.constructor(TempleERC20Token,ITreasuryIV,address)._defendStable (contracts/amm/TempleStableAMMRouter.sol#40) lacks a zero-check on :\n\t\t- defendStable = _defendStable (contracts/amm/TempleStableAMMRouter.sol#45)\n", + "markdown": "[TempleStableAMMRouter.constructor(TempleERC20Token,ITreasuryIV,address)._defendStable](contracts/amm/TempleStableAMMRouter.sol#L40) lacks a zero-check on :\n\t\t- [defendStable = _defendStable](contracts/amm/TempleStableAMMRouter.sol#L45)\n", + "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L40", + "id": "8e8b46a3e001386612a0920cae43f3178af46f175ae977aa5f36adc5662d1cda", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_defendStable", + "source_mapping": { + "start": 1652, + "length": 21, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [56], + "starting_column": 30, + "ending_column": 51 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setDefendStable", + "source_mapping": { + "start": 1627, + "length": 112, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [56, 57, 58], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleStableAMMRouter", + "source_mapping": { + "start": 640, + "length": 8255, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setDefendStable(address)" } - ], - "description": "OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue)) (contracts/core/OpsManagerLib.sol#97-109) has external calls inside a loop: exposure = pools[exposureTokens[i]].exposure() (contracts/core/OpsManagerLib.sol#101)\n", - "markdown": "[OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))](contracts/core/OpsManagerLib.sol#L97-L109) has external calls inside a loop: [exposure = pools[exposureTokens[i]].exposure()](contracts/core/OpsManagerLib.sol#L101)\n", - "first_markdown_element": "contracts/core/OpsManagerLib.sol#L97-L109", - "id": "29cef7ed2793cf3d146be2fdec55418a2cdf263801d54510013749346bac88f3", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "updateExposureReval", - "source_mapping": { - "start": 3380, - "length": 681, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" - } - }, - { - "type": "node", - "name": "currentReval = exposure.reval()", - "source_mapping": { - "start": 3794, - "length": 39, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 102 - ], - "starting_column": 13, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "updateExposureReval", - "source_mapping": { - "start": 3380, - "length": 681, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" - } - } - } + } + } + }, + { + "type": "node", + "name": "defendStable = _defendStable", + "source_mapping": { + "start": 1704, + "length": 28, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [57], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setDefendStable", + "source_mapping": { + "start": 1627, + "length": 112, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [56, 57, 58], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleStableAMMRouter", + "source_mapping": { + "start": 640, + "length": 8255, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setDefendStable(address)" } - ], - "description": "OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue)) (contracts/core/OpsManagerLib.sol#97-109) has external calls inside a loop: currentReval = exposure.reval() (contracts/core/OpsManagerLib.sol#102)\n", - "markdown": "[OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))](contracts/core/OpsManagerLib.sol#L97-L109) has external calls inside a loop: [currentReval = exposure.reval()](contracts/core/OpsManagerLib.sol#L102)\n", - "first_markdown_element": "contracts/core/OpsManagerLib.sol#L97-L109", - "id": "4b9ed20c5dffb0bb937e8e35bc5da6f0e0de33bda4b92ca4b5f843554466cbbc", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "updateExposureReval", - "source_mapping": { - "start": 3380, - "length": 681, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" - } - }, - { - "type": "node", - "name": "exposure.decreaseReval(currentReval - revals[i])", - "source_mapping": { - "start": 3895, - "length": 48, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 104 - ], - "starting_column": 17, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "updateExposureReval", - "source_mapping": { - "start": 3380, - "length": 681, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" - } - } - } + } + } + } + ], + "description": "TempleStableAMMRouter.setDefendStable(address)._defendStable (contracts/amm/TempleStableAMMRouter.sol#56) lacks a zero-check on :\n\t\t- defendStable = _defendStable (contracts/amm/TempleStableAMMRouter.sol#57)\n", + "markdown": "[TempleStableAMMRouter.setDefendStable(address)._defendStable](contracts/amm/TempleStableAMMRouter.sol#L56) lacks a zero-check on :\n\t\t- [defendStable = _defendStable](contracts/amm/TempleStableAMMRouter.sol#L57)\n", + "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L56", + "id": "de02254c0f567ff1a6e8223d4826abf485c07990091f962338f7c0fa067431d5", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_vaultedTempleAccount", + "source_mapping": { + "start": 2726, + "length": 29, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [65], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 2577, + "length": 838, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)" } - ], - "description": "OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue)) (contracts/core/OpsManagerLib.sol#97-109) has external calls inside a loop: exposure.decreaseReval(currentReval - revals[i]) (contracts/core/OpsManagerLib.sol#104)\n", - "markdown": "[OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))](contracts/core/OpsManagerLib.sol#L97-L109) has external calls inside a loop: [exposure.decreaseReval(currentReval - revals[i])](contracts/core/OpsManagerLib.sol#L104)\n", - "first_markdown_element": "contracts/core/OpsManagerLib.sol#L97-L109", - "id": "2a8d232e2a9bf6e56bf39af5ffd6e5e36613e5a9aa77a6691551c45c0092abf8", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "updateExposureReval", - "source_mapping": { - "start": 3380, - "length": 681, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" - } - }, - { - "type": "node", - "name": "exposure.increaseReval(revals[i] - currentReval)", - "source_mapping": { - "start": 3982, - "length": 48, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 106 - ], - "starting_column": 17, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "updateExposureReval", - "source_mapping": { - "start": 3380, - "length": 681, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManagerLib", - "source_mapping": { - "start": 158, - "length": 3905, - "filename_relative": "contracts/core/OpsManagerLib.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManagerLib.sol", - "filename_short": "contracts/core/OpsManagerLib.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" - } - } - } + } + } + }, + { + "type": "node", + "name": "vaultedTempleAccount = _vaultedTempleAccount", + "source_mapping": { + "start": 3116, + "length": 44, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [74], + "starting_column": 9, + "ending_column": 53 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 2577, + "length": 838, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)" } - ], - "description": "OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue)) (contracts/core/OpsManagerLib.sol#97-109) has external calls inside a loop: exposure.increaseReval(revals[i] - currentReval) (contracts/core/OpsManagerLib.sol#106)\n", - "markdown": "[OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))](contracts/core/OpsManagerLib.sol#L97-L109) has external calls inside a loop: [exposure.increaseReval(revals[i] - currentReval)](contracts/core/OpsManagerLib.sol#L106)\n", - "first_markdown_element": "contracts/core/OpsManagerLib.sol#L97-L109", - "id": "02b2b95f67586f3365a9cc8e6b95fd4d48a424694b15f84a5b362f195ca5b007", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "redeemExposures", - "source_mapping": { - "start": 4724, - "length": 251, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 117, - 118, - 119, - 120, - 121, - 122, - 123 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "redeemExposures(Exposure[])" - } - }, - { - "type": "node", - "name": "exposures[i].redeem()", - "source_mapping": { - "start": 4868, - "length": 21, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 119 - ], - "starting_column": 13, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "redeemExposures", - "source_mapping": { - "start": 4724, - "length": 251, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 117, - 118, - 119, - 120, - 121, - 122, - 123 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "redeemExposures(Exposure[])" - } - } - } + } + } + } + ], + "description": "Vault.constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)._vaultedTempleAccount (contracts/core/Vault.sol#65) lacks a zero-check on :\n\t\t- vaultedTempleAccount = _vaultedTempleAccount (contracts/core/Vault.sol#74)\n", + "markdown": "[Vault.constructor(string,string,IERC20,Exposure,address,uint256,uint256,Rational,JoiningFee,uint256)._vaultedTempleAccount](contracts/core/Vault.sol#L65) lacks a zero-check on :\n\t\t- [vaultedTempleAccount = _vaultedTempleAccount](contracts/core/Vault.sol#L74)\n", + "first_markdown_element": "contracts/core/Vault.sol#L65", + "id": "ec8f5d8d5e84e67e63f7cfdbd240113b25d7e450ff6b895abf8718c03e3b752b", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_templeExposure", + "source_mapping": { + "start": 1380, + "length": 23, + "filename_relative": "contracts/core/VaultedTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultedTemple.sol", + "filename_short": "contracts/core/VaultedTemple.sol", + "is_dependency": false, + "lines": [39], + "starting_column": 38, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 1347, + "length": 163, + "filename_relative": "contracts/core/VaultedTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultedTemple.sol", + "filename_short": "contracts/core/VaultedTemple.sol", + "is_dependency": false, + "lines": [39, 40, 41, 42], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "VaultedTemple", + "source_mapping": { + "start": 1207, + "length": 1025, + "filename_relative": "contracts/core/VaultedTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultedTemple.sol", + "filename_short": "contracts/core/VaultedTemple.sol", + "is_dependency": false, + "lines": [ + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(IERC20,address)" } - ], - "description": "Vault.redeemExposures(Exposure[]) (contracts/core/Vault.sol#117-123) has external calls inside a loop: exposures[i].redeem() (contracts/core/Vault.sol#119)\n", - "markdown": "[Vault.redeemExposures(Exposure[])](contracts/core/Vault.sol#L117-L123) has external calls inside a loop: [exposures[i].redeem()](contracts/core/Vault.sol#L119)\n", - "first_markdown_element": "contracts/core/Vault.sol#L117-L123", - "id": "fb0eb1701c9d5262a84b7e53dfc4632c0ca1d6292b4e39447df4f40eaf369003", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token0,to,amount0)", - "source_mapping": { - "start": 6213, - "length": 35, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 131 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token1,to,amount1)", - "source_mapping": { - "start": 6258, - "length": 35, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 132 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token0,to,amount0)", - "source_mapping": { - "start": 6213, - "length": 35, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 131 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token1,to,amount1)", - "source_mapping": { - "start": 6258, - "length": 35, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 132 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_update(balance0,balance1,_reserve0,_reserve1)", - "source_mapping": { - "start": 6426, - "length": 49, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 136 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "price0CumulativeLast" - } - }, - { - "type": "node", - "name": "price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed", - "source_mapping": { - "start": 3587, - "length": 88, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 86 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "price0CumulativeLast" - } - }, - { - "type": "node", - "name": "_update(balance0,balance1,_reserve0,_reserve1)", - "source_mapping": { - "start": 6426, - "length": 49, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 136 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "price1CumulativeLast" - } - }, - { - "type": "node", - "name": "price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed", - "source_mapping": { - "start": 3689, - "length": 88, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 87 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "price1CumulativeLast" - } + } + } + }, + { + "type": "node", + "name": "templeExposure = _templeExposure", + "source_mapping": { + "start": 1471, + "length": 32, + "filename_relative": "contracts/core/VaultedTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultedTemple.sol", + "filename_short": "contracts/core/VaultedTemple.sol", + "is_dependency": false, + "lines": [41], + "starting_column": 9, + "ending_column": 41 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 1347, + "length": 163, + "filename_relative": "contracts/core/VaultedTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultedTemple.sol", + "filename_short": "contracts/core/VaultedTemple.sol", + "is_dependency": false, + "lines": [39, 40, 41, 42], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "VaultedTemple", + "source_mapping": { + "start": 1207, + "length": 1025, + "filename_relative": "contracts/core/VaultedTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultedTemple.sol", + "filename_short": "contracts/core/VaultedTemple.sol", + "is_dependency": false, + "lines": [ + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(IERC20,address)" } - ], - "description": "Reentrancy in TempleUniswapV2Pair.burn(address) (contracts/amm/TempleUniswapV2Pair.sol#118-138):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0) (contracts/amm/TempleUniswapV2Pair.sol#131)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- _safeTransfer(_token1,to,amount1) (contracts/amm/TempleUniswapV2Pair.sol#132)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\tState variables written after the call(s):\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#136)\n\t\t- price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed (contracts/amm/TempleUniswapV2Pair.sol#86)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#136)\n\t\t- price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed (contracts/amm/TempleUniswapV2Pair.sol#87)\n", - "markdown": "Reentrancy in [TempleUniswapV2Pair.burn(address)](contracts/amm/TempleUniswapV2Pair.sol#L118-L138):\n\tExternal calls:\n\t- [_safeTransfer(_token0,to,amount0)](contracts/amm/TempleUniswapV2Pair.sol#L131)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [_safeTransfer(_token1,to,amount1)](contracts/amm/TempleUniswapV2Pair.sol#L132)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\tState variables written after the call(s):\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L136)\n\t\t- [price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed](contracts/amm/TempleUniswapV2Pair.sol#L86)\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L136)\n\t\t- [price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed](contracts/amm/TempleUniswapV2Pair.sol#L87)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L118-L138", - "id": "d6f7e9923264688e14af684f9180e869a190d782f4a8ab55d1efa22ac6b2ec72", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token0,to,amount0Out)", - "source_mapping": { - "start": 7388, - "length": 38, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 153 - ], - "starting_column": 29, - "ending_column": 67 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token1,to,amount1Out)", - "source_mapping": { - "start": 7490, - "length": 38, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 154 - ], - "starting_column": 29, - "ending_column": 67 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)", - "source_mapping": { - "start": 7593, - "length": 76, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 155 - ], - "starting_column": 30, - "ending_column": 106 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token0,to,amount0Out)", - "source_mapping": { - "start": 7388, - "length": 38, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 153 - ], - "starting_column": 29, - "ending_column": 67 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token1,to,amount1Out)", - "source_mapping": { - "start": 7490, - "length": 38, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 154 - ], - "starting_column": 29, - "ending_column": 67 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)", - "source_mapping": { - "start": 7593, - "length": 76, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 155 - ], - "starting_column": 30, - "ending_column": 106 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_update(balance0,balance1,_reserve0,_reserve1)", - "source_mapping": { - "start": 8457, - "length": 49, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 168 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "price0CumulativeLast" - } - }, - { - "type": "node", - "name": "price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed", - "source_mapping": { - "start": 3587, - "length": 88, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 86 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "price0CumulativeLast" - } - }, - { - "type": "node", - "name": "_update(balance0,balance1,_reserve0,_reserve1)", + } + } + } + ], + "description": "VaultedTemple.constructor(IERC20,address)._templeExposure (contracts/core/VaultedTemple.sol#39) lacks a zero-check on :\n\t\t- templeExposure = _templeExposure (contracts/core/VaultedTemple.sol#41)\n", + "markdown": "[VaultedTemple.constructor(IERC20,address)._templeExposure](contracts/core/VaultedTemple.sol#L39) lacks a zero-check on :\n\t\t- [templeExposure = _templeExposure](contracts/core/VaultedTemple.sol#L41)\n", + "first_markdown_element": "contracts/core/VaultedTemple.sol#L39", + "id": "2fcc44b40158b30b8b0d1614ffa673ffe544de75b922fdda079eea29dca64415", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_recipient", + "source_mapping": { + "start": 1683, + "length": 18, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [48], + "starting_column": 34, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setRewardsRecipient", + "source_mapping": { + "start": 1654, + "length": 179, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [48, 49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setRewardsRecipient(address)" + } + } + } + }, + { + "type": "node", + "name": "rewardsRecipient = _recipient", + "source_mapping": { + "start": 1750, + "length": 29, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [49], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setRewardsRecipient", + "source_mapping": { + "start": 1654, + "length": 179, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [48, 49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setRewardsRecipient(address)" + } + } + } + } + ], + "description": "AuraStaking.setRewardsRecipient(address)._recipient (contracts/amo/AuraStaking.sol#48) lacks a zero-check on :\n\t\t- rewardsRecipient = _recipient (contracts/amo/AuraStaking.sol#49)\n", + "markdown": "[AuraStaking.setRewardsRecipient(address)._recipient](contracts/amo/AuraStaking.sol#L48) lacks a zero-check on :\n\t\t- [rewardsRecipient = _recipient](contracts/amo/AuraStaking.sol#L49)\n", + "first_markdown_element": "contracts/amo/AuraStaking.sol#L48", + "id": "5563fec2719988c18a09b1c9b98748a0700c5a09c84dd2f6ec51e7b0796b0c80", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_feeCollector", + "source_mapping": { + "start": 4828, + "length": 21, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [113], + "starting_column": 9, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 4516, + "length": 995, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(address,address,address,address,address,address,address,uint64,bytes32,address,uint256)" + } + } + } + }, + { + "type": "node", + "name": "feeCollector = _feeCollector", + "source_mapping": { + "start": 5309, + "length": 28, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [123], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 4516, + "length": 995, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(address,address,address,address,address,address,address,uint64,bytes32,address,uint256)" + } + } + } + } + ], + "description": "Ramos.constructor(address,address,address,address,address,address,address,uint64,bytes32,address,uint256)._feeCollector (contracts/amo/Ramos.sol#113) lacks a zero-check on :\n\t\t- feeCollector = _feeCollector (contracts/amo/Ramos.sol#123)\n", + "markdown": "[Ramos.constructor(address,address,address,address,address,address,address,uint64,bytes32,address,uint256)._feeCollector](contracts/amo/Ramos.sol#L113) lacks a zero-check on :\n\t\t- [feeCollector = _feeCollector](contracts/amo/Ramos.sol#L123)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L113", + "id": "d859e385f8bd8eca35f31a74169347836938cb1a82d4c8321f358ad5363d6ed4", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_amo", + "source_mapping": { + "start": 1614, + "length": 12, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [41], + "starting_column": 7, + "ending_column": 19 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 1451, + "length": 622, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "BalancerPoolHelper", + "source_mapping": { + "start": 739, + "length": 19014, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(address,address,address,address,address,address,uint64,bytes32)" + } + } + } + }, + { + "type": "node", + "name": "amo = _amo", + "source_mapping": { + "start": 1988, + "length": 10, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [51], + "starting_column": 7, + "ending_column": 17 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 1451, + "length": 622, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "BalancerPoolHelper", + "source_mapping": { + "start": 739, + "length": 19014, + "filename_relative": "contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/helpers/BalancerPoolHelper.sol", + "filename_short": "contracts/amo/helpers/BalancerPoolHelper.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(address,address,address,address,address,address,uint64,bytes32)" + } + } + } + } + ], + "description": "BalancerPoolHelper.constructor(address,address,address,address,address,address,uint64,bytes32)._amo (contracts/amo/helpers/BalancerPoolHelper.sol#41) lacks a zero-check on :\n\t\t- amo = _amo (contracts/amo/helpers/BalancerPoolHelper.sol#51)\n", + "markdown": "[BalancerPoolHelper.constructor(address,address,address,address,address,address,uint64,bytes32)._amo](contracts/amo/helpers/BalancerPoolHelper.sol#L41) lacks a zero-check on :\n\t\t- [amo = _amo](contracts/amo/helpers/BalancerPoolHelper.sol#L51)\n", + "first_markdown_element": "contracts/amo/helpers/BalancerPoolHelper.sol#L41", + "id": "1a4d31b221d02b3c425c477d2b7e4c6dc1e41557697509c8e152170c2f1f7986", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_fundsOwner", + "source_mapping": { + "start": 3146, + "length": 19, + "filename_relative": "contracts/core/OtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OtcOffer.sol", + "filename_short": "contracts/core/OtcOffer.sol", + "is_dependency": false, + "lines": [72], + "starting_column": 9, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 3062, + "length": 1137, + "filename_relative": "contracts/core/OtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OtcOffer.sol", + "filename_short": "contracts/core/OtcOffer.sol", + "is_dependency": false, + "lines": [ + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OtcOffer", + "source_mapping": { + "start": 844, + "length": 6488, + "filename_relative": "contracts/core/OtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OtcOffer.sol", + "filename_short": "contracts/core/OtcOffer.sol", + "is_dependency": false, + "lines": [ + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "constructor(address,address,address,uint256,OtcOffer.OfferPricingToken,uint128,uint128)" + } + } + } + }, + { + "type": "node", + "name": "fundsOwner = _fundsOwner", + "source_mapping": { + "start": 3461, + "length": 24, + "filename_relative": "contracts/core/OtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OtcOffer.sol", + "filename_short": "contracts/core/OtcOffer.sol", + "is_dependency": false, + "lines": [80], + "starting_column": 9, + "ending_column": 33 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 3062, + "length": 1137, + "filename_relative": "contracts/core/OtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OtcOffer.sol", + "filename_short": "contracts/core/OtcOffer.sol", + "is_dependency": false, + "lines": [ + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OtcOffer", + "source_mapping": { + "start": 844, + "length": 6488, + "filename_relative": "contracts/core/OtcOffer.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OtcOffer.sol", + "filename_short": "contracts/core/OtcOffer.sol", + "is_dependency": false, + "lines": [ + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "constructor(address,address,address,uint256,OtcOffer.OfferPricingToken,uint128,uint128)" + } + } + } + } + ], + "description": "OtcOffer.constructor(address,address,address,uint256,OtcOffer.OfferPricingToken,uint128,uint128)._fundsOwner (contracts/core/OtcOffer.sol#72) lacks a zero-check on :\n\t\t- fundsOwner = _fundsOwner (contracts/core/OtcOffer.sol#80)\n", + "markdown": "[OtcOffer.constructor(address,address,address,uint256,OtcOffer.OfferPricingToken,uint128,uint128)._fundsOwner](contracts/core/OtcOffer.sol#L72) lacks a zero-check on :\n\t\t- [fundsOwner = _fundsOwner](contracts/core/OtcOffer.sol#L80)\n", + "first_markdown_element": "contracts/core/OtcOffer.sol#L72", + "id": "318c72045beea63d39db91e2c64959d93dbfe0e966ec4e74e6cbf32f20a24e68", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_gnosisSafeWallet", + "source_mapping": { + "start": 1642, + "length": 25, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [41], + "starting_column": 9, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 1477, + "length": 459, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(address,address,string,address,address,address)" + } + } + } + }, + { + "type": "node", + "name": "gnosisSafeWallet = _gnosisSafeWallet", + "source_mapping": { + "start": 1813, + "length": 36, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [44], + "starting_column": 9, + "ending_column": 45 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 1477, + "length": 459, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(address,address,string,address,address,address)" + } + } + } + } + ], + "description": "GnosisStrategy.constructor(address,address,string,address,address,address)._gnosisSafeWallet (contracts/v2/strategies/GnosisStrategy.sol#41) lacks a zero-check on :\n\t\t- gnosisSafeWallet = _gnosisSafeWallet (contracts/v2/strategies/GnosisStrategy.sol#44)\n", + "markdown": "[GnosisStrategy.constructor(address,address,string,address,address,address)._gnosisSafeWallet](contracts/v2/strategies/GnosisStrategy.sol#L41) lacks a zero-check on :\n\t\t- [gnosisSafeWallet = _gnosisSafeWallet](contracts/v2/strategies/GnosisStrategy.sol#L44)\n", + "first_markdown_element": "contracts/v2/strategies/GnosisStrategy.sol#L41", + "id": "35341096e7cc1cb2d71fe6962d37434197ec4866db8dda0c2c8cd05c17585e33", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_owner", + "source_mapping": { + "start": 2665, + "length": 14, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [67], + "starting_column": 17, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 2653, + "length": 152, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [67, 68, 69, 70, 71], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(address,address,address)" + } + } + } + }, + { + "type": "node", + "name": "owner = _owner", + "source_mapping": { + "start": 2732, + "length": 14, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [68], + "starting_column": 9, + "ending_column": 23 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 2653, + "length": 152, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [67, 68, 69, 70, 71], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(address,address,address)" + } + } + } + } + ], + "description": "TempleUniswapV2Pair.constructor(address,address,address)._owner (contracts/amm/TempleUniswapV2Pair.sol#67) lacks a zero-check on :\n\t\t- owner = _owner (contracts/amm/TempleUniswapV2Pair.sol#68)\n", + "markdown": "[TempleUniswapV2Pair.constructor(address,address,address)._owner](contracts/amm/TempleUniswapV2Pair.sol#L67) lacks a zero-check on :\n\t\t- [owner = _owner](contracts/amm/TempleUniswapV2Pair.sol#L68)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L67", + "id": "957fa8fd60f70987f3ddecb1cc94bcc42a04d5732b7d1fd612e14be458618171", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_token0", + "source_mapping": { + "start": 2681, + "length": 15, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [67], + "starting_column": 33, + "ending_column": 48 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 2653, + "length": 152, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [67, 68, 69, 70, 71], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(address,address,address)" + } + } + } + }, + { + "type": "node", + "name": "token0 = _token0", + "source_mapping": { + "start": 2756, + "length": 16, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [69], + "starting_column": 9, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 2653, + "length": 152, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [67, 68, 69, 70, 71], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(address,address,address)" + } + } + } + } + ], + "description": "TempleUniswapV2Pair.constructor(address,address,address)._token0 (contracts/amm/TempleUniswapV2Pair.sol#67) lacks a zero-check on :\n\t\t- token0 = _token0 (contracts/amm/TempleUniswapV2Pair.sol#69)\n", + "markdown": "[TempleUniswapV2Pair.constructor(address,address,address)._token0](contracts/amm/TempleUniswapV2Pair.sol#L67) lacks a zero-check on :\n\t\t- [token0 = _token0](contracts/amm/TempleUniswapV2Pair.sol#L69)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L67", + "id": "89b68064543393a53cb614749cb260c4fb872797867021adbebf53b5a0362b2f", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_token1", + "source_mapping": { + "start": 2698, + "length": 15, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [67], + "starting_column": 50, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 2653, + "length": 152, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [67, 68, 69, 70, 71], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(address,address,address)" + } + } + } + }, + { + "type": "node", + "name": "token1 = _token1", + "source_mapping": { + "start": 2782, + "length": 16, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [70], + "starting_column": 9, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 2653, + "length": 152, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [67, 68, 69, 70, 71], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "constructor(address,address,address)" + } + } + } + } + ], + "description": "TempleUniswapV2Pair.constructor(address,address,address)._token1 (contracts/amm/TempleUniswapV2Pair.sol#67) lacks a zero-check on :\n\t\t- token1 = _token1 (contracts/amm/TempleUniswapV2Pair.sol#70)\n", + "markdown": "[TempleUniswapV2Pair.constructor(address,address,address)._token1](contracts/amm/TempleUniswapV2Pair.sol#L67) lacks a zero-check on :\n\t\t- [token1 = _token1](contracts/amm/TempleUniswapV2Pair.sol#L70)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L67", + "id": "690db18543951330bfe14086929ed1a80aa7c5c43d413a52b921411451479889", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_router", + "source_mapping": { + "start": 2904, + "length": 15, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [74], + "starting_column": 24, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setRouter", + "source_mapping": { + "start": 2885, + "length": 140, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setRouter(address)" + } + } + } + }, + { + "type": "node", + "name": "router = _router", + "source_mapping": { + "start": 3002, + "length": 16, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [76], + "starting_column": 9, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setRouter", + "source_mapping": { + "start": 2885, + "length": 140, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setRouter(address)" + } + } + } + } + ], + "description": "TempleUniswapV2Pair.setRouter(address)._router (contracts/amm/TempleUniswapV2Pair.sol#74) lacks a zero-check on :\n\t\t- router = _router (contracts/amm/TempleUniswapV2Pair.sol#76)\n", + "markdown": "[TempleUniswapV2Pair.setRouter(address)._router](contracts/amm/TempleUniswapV2Pair.sol#L74) lacks a zero-check on :\n\t\t- [router = _router](contracts/amm/TempleUniswapV2Pair.sol#L76)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L74", + "id": "65b7f26867d221829e7395a702a30581f77ebb909c900aa9dc269f7dd15923d0", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "addRevenue", + "source_mapping": { + "start": 3635, + "length": 351, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [110, 111, 112, 113, 114, 115, 116], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "addRevenue(IERC20[],uint256[])" + } + }, + { + "type": "node", + "name": "pools[exposureTokens[i]].addRevenue(amounts[i])", + "source_mapping": { + "start": 3922, + "length": 47, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [114], + "starting_column": 13, + "ending_column": 60 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addRevenue", + "source_mapping": { + "start": 3635, + "length": 351, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [110, 111, 112, 113, 114, 115, 116], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "addRevenue(IERC20[],uint256[])" + } + } + } + } + ], + "description": "OpsManager.addRevenue(IERC20[],uint256[]) (contracts/core/OpsManager.sol#110-116) has external calls inside a loop: pools[exposureTokens[i]].addRevenue(amounts[i]) (contracts/core/OpsManager.sol#114)\n", + "markdown": "[OpsManager.addRevenue(IERC20[],uint256[])](contracts/core/OpsManager.sol#L110-L116) has external calls inside a loop: [pools[exposureTokens[i]].addRevenue(amounts[i])](contracts/core/OpsManager.sol#L114)\n", + "first_markdown_element": "contracts/core/OpsManager.sol#L110-L116", + "id": "5665a1327173172c99a94790114d41a7287eb453518635edd48056ecba261fa4", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "increaseVaultTemple", + "source_mapping": { + "start": 4415, + "length": 447, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [130, 131, 132, 133, 134, 135, 136, 137], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "increaseVaultTemple(Vault[],uint256[])" + } + }, + { + "type": "node", + "name": "templeExposure.mint(address(vaults[i]),amountsTemple[i])", + "source_mapping": { + "start": 4788, + "length": 57, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [135], + "starting_column": 13, + "ending_column": 70 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "increaseVaultTemple", + "source_mapping": { + "start": 4415, + "length": 447, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [130, 131, 132, 133, 134, 135, 136, 137], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "increaseVaultTemple(Vault[],uint256[])" + } + } + } + } + ], + "description": "OpsManager.increaseVaultTemple(Vault[],uint256[]) (contracts/core/OpsManager.sol#130-137) has external calls inside a loop: templeExposure.mint(address(vaults[i]),amountsTemple[i]) (contracts/core/OpsManager.sol#135)\n", + "markdown": "[OpsManager.increaseVaultTemple(Vault[],uint256[])](contracts/core/OpsManager.sol#L130-L137) has external calls inside a loop: [templeExposure.mint(address(vaults[i]),amountsTemple[i])](contracts/core/OpsManager.sol#L135)\n", + "first_markdown_element": "contracts/core/OpsManager.sol#L130-L137", + "id": "73ad477fce052d6df52f4050312b09c115d39ab6a4163386fdb2d902cdf8d2a5", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "liquidateExposures", + "source_mapping": { + "start": 5058, + "length": 531, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "liquidateExposures(Vault[],IERC20[])" + } + }, + { + "type": "node", + "name": "exposures[i] = pools[exposureTokens[i]].exposure()", + "source_mapping": { + "start": 5314, + "length": 50, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [148], + "starting_column": 13, + "ending_column": 63 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "liquidateExposures", + "source_mapping": { + "start": 5058, + "length": 531, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "liquidateExposures(Vault[],IERC20[])" + } + } + } + } + ], + "description": "OpsManager.liquidateExposures(Vault[],IERC20[]) (contracts/core/OpsManager.sol#144-155) has external calls inside a loop: exposures[i] = pools[exposureTokens[i]].exposure() (contracts/core/OpsManager.sol#148)\n", + "markdown": "[OpsManager.liquidateExposures(Vault[],IERC20[])](contracts/core/OpsManager.sol#L144-L155) has external calls inside a loop: [exposures[i] = pools[exposureTokens[i]].exposure()](contracts/core/OpsManager.sol#L148)\n", + "first_markdown_element": "contracts/core/OpsManager.sol#L144-L155", + "id": "ead7d436da8a29569022b48ffddbfceb808c4dd315ce7ca9d743dc5226a168dc", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "liquidateExposures", + "source_mapping": { + "start": 5058, + "length": 531, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "liquidateExposures(Vault[],IERC20[])" + } + }, + { + "type": "node", + "name": "vaults[i_scope_0].redeemExposures(exposures)", + "source_mapping": { + "start": 5536, + "length": 36, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [153], + "starting_column": 13, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "liquidateExposures", + "source_mapping": { + "start": 5058, + "length": 531, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "liquidateExposures(Vault[],IERC20[])" + } + } + } + } + ], + "description": "OpsManager.liquidateExposures(Vault[],IERC20[]) (contracts/core/OpsManager.sol#144-155) has external calls inside a loop: vaults[i_scope_0].redeemExposures(exposures) (contracts/core/OpsManager.sol#153)\n", + "markdown": "[OpsManager.liquidateExposures(Vault[],IERC20[])](contracts/core/OpsManager.sol#L144-L155) has external calls inside a loop: [vaults[i_scope_0].redeemExposures(exposures)](contracts/core/OpsManager.sol#L153)\n", + "first_markdown_element": "contracts/core/OpsManager.sol#L144-L155", + "id": "03a21ffca7a3586cab7fab91c4d3c7df01b444412ef9a937d63e8d95d7ef5075", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "requiresRebalance", + "source_mapping": { + "start": 2821, + "length": 553, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "requiresRebalance(Vault[],TreasuryFarmingRevenue)" + } + }, + { + "type": "node", + "name": "(inWindow) = vaults[i].inEnterExitWindow()", + "source_mapping": { + "start": 3101, + "length": 49, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [86], + "starting_column": 13, + "ending_column": 62 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "requiresRebalance", + "source_mapping": { + "start": 2821, + "length": 553, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "requiresRebalance(Vault[],TreasuryFarmingRevenue)" + } + } + } + } + ], + "description": "OpsManagerLib.requiresRebalance(Vault[],TreasuryFarmingRevenue) (contracts/core/OpsManagerLib.sol#79-95) has external calls inside a loop: (inWindow) = vaults[i].inEnterExitWindow() (contracts/core/OpsManagerLib.sol#86)\n", + "markdown": "[OpsManagerLib.requiresRebalance(Vault[],TreasuryFarmingRevenue)](contracts/core/OpsManagerLib.sol#L79-L95) has external calls inside a loop: [(inWindow) = vaults[i].inEnterExitWindow()](contracts/core/OpsManagerLib.sol#L86)\n", + "first_markdown_element": "contracts/core/OpsManagerLib.sol#L79-L95", + "id": "33abe3219d901465ec0025ed3b5cee25a23e8e043748dac853f60e352579796c", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "requiresRebalance", + "source_mapping": { + "start": 2821, + "length": 553, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "requiresRebalance(Vault[],TreasuryFarmingRevenue)" + } + }, + { + "type": "node", + "name": "requiresUpdate[i] = farmingPool.shares(address(vaults[i])) != vaults[i].targetRevenueShare()", + "source_mapping": { + "start": 3233, + "length": 92, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 13, + "ending_column": 105 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "requiresRebalance", + "source_mapping": { + "start": 2821, + "length": 553, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "requiresRebalance(Vault[],TreasuryFarmingRevenue)" + } + } + } + } + ], + "description": "OpsManagerLib.requiresRebalance(Vault[],TreasuryFarmingRevenue) (contracts/core/OpsManagerLib.sol#79-95) has external calls inside a loop: requiresUpdate[i] = farmingPool.shares(address(vaults[i])) != vaults[i].targetRevenueShare() (contracts/core/OpsManagerLib.sol#91)\n", + "markdown": "[OpsManagerLib.requiresRebalance(Vault[],TreasuryFarmingRevenue)](contracts/core/OpsManagerLib.sol#L79-L95) has external calls inside a loop: [requiresUpdate[i] = farmingPool.shares(address(vaults[i])) != vaults[i].targetRevenueShare()](contracts/core/OpsManagerLib.sol#L91)\n", + "first_markdown_element": "contracts/core/OpsManagerLib.sol#L79-L95", + "id": "291eba1d32cb690e10f4480f7b32b2bae6d005ffbf40558ffd08cf8b0ce6ee4d", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "updateExposureReval", + "source_mapping": { + "start": 3380, + "length": 681, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" + } + }, + { + "type": "node", + "name": "exposure = pools[exposureTokens[i]].exposure()", + "source_mapping": { + "start": 3725, + "length": 55, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [101], + "starting_column": 13, + "ending_column": 68 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "updateExposureReval", + "source_mapping": { + "start": 3380, + "length": 681, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" + } + } + } + } + ], + "description": "OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue)) (contracts/core/OpsManagerLib.sol#97-109) has external calls inside a loop: exposure = pools[exposureTokens[i]].exposure() (contracts/core/OpsManagerLib.sol#101)\n", + "markdown": "[OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))](contracts/core/OpsManagerLib.sol#L97-L109) has external calls inside a loop: [exposure = pools[exposureTokens[i]].exposure()](contracts/core/OpsManagerLib.sol#L101)\n", + "first_markdown_element": "contracts/core/OpsManagerLib.sol#L97-L109", + "id": "29cef7ed2793cf3d146be2fdec55418a2cdf263801d54510013749346bac88f3", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "updateExposureReval", + "source_mapping": { + "start": 3380, + "length": 681, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" + } + }, + { + "type": "node", + "name": "currentReval = exposure.reval()", + "source_mapping": { + "start": 3794, + "length": 39, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [102], + "starting_column": 13, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "updateExposureReval", + "source_mapping": { + "start": 3380, + "length": 681, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" + } + } + } + } + ], + "description": "OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue)) (contracts/core/OpsManagerLib.sol#97-109) has external calls inside a loop: currentReval = exposure.reval() (contracts/core/OpsManagerLib.sol#102)\n", + "markdown": "[OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))](contracts/core/OpsManagerLib.sol#L97-L109) has external calls inside a loop: [currentReval = exposure.reval()](contracts/core/OpsManagerLib.sol#L102)\n", + "first_markdown_element": "contracts/core/OpsManagerLib.sol#L97-L109", + "id": "4b9ed20c5dffb0bb937e8e35bc5da6f0e0de33bda4b92ca4b5f843554466cbbc", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "updateExposureReval", + "source_mapping": { + "start": 3380, + "length": 681, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" + } + }, + { + "type": "node", + "name": "exposure.decreaseReval(currentReval - revals[i])", + "source_mapping": { + "start": 3895, + "length": 48, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [104], + "starting_column": 17, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "updateExposureReval", + "source_mapping": { + "start": 3380, + "length": 681, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" + } + } + } + } + ], + "description": "OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue)) (contracts/core/OpsManagerLib.sol#97-109) has external calls inside a loop: exposure.decreaseReval(currentReval - revals[i]) (contracts/core/OpsManagerLib.sol#104)\n", + "markdown": "[OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))](contracts/core/OpsManagerLib.sol#L97-L109) has external calls inside a loop: [exposure.decreaseReval(currentReval - revals[i])](contracts/core/OpsManagerLib.sol#L104)\n", + "first_markdown_element": "contracts/core/OpsManagerLib.sol#L97-L109", + "id": "2a8d232e2a9bf6e56bf39af5ffd6e5e36613e5a9aa77a6691551c45c0092abf8", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "updateExposureReval", + "source_mapping": { + "start": 3380, + "length": 681, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" + } + }, + { + "type": "node", + "name": "exposure.increaseReval(revals[i] - currentReval)", + "source_mapping": { + "start": 3982, + "length": 48, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [106], + "starting_column": 17, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "updateExposureReval", + "source_mapping": { + "start": 3380, + "length": 681, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManagerLib", + "source_mapping": { + "start": 158, + "length": 3905, + "filename_relative": "contracts/core/OpsManagerLib.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManagerLib.sol", + "filename_short": "contracts/core/OpsManagerLib.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))" + } + } + } + } + ], + "description": "OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue)) (contracts/core/OpsManagerLib.sol#97-109) has external calls inside a loop: exposure.increaseReval(revals[i] - currentReval) (contracts/core/OpsManagerLib.sol#106)\n", + "markdown": "[OpsManagerLib.updateExposureReval(IERC20[],uint256[],mapping(IERC20 => TreasuryFarmingRevenue))](contracts/core/OpsManagerLib.sol#L97-L109) has external calls inside a loop: [exposure.increaseReval(revals[i] - currentReval)](contracts/core/OpsManagerLib.sol#L106)\n", + "first_markdown_element": "contracts/core/OpsManagerLib.sol#L97-L109", + "id": "02b2b95f67586f3365a9cc8e6b95fd4d48a424694b15f84a5b362f195ca5b007", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "redeemExposures", + "source_mapping": { + "start": 4673, + "length": 251, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [113, 114, 115, 116, 117, 118, 119], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "redeemExposures(Exposure[])" + } + }, + { + "type": "node", + "name": "exposures[i].redeem()", + "source_mapping": { + "start": 4817, + "length": 21, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [115], + "starting_column": 13, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "redeemExposures", + "source_mapping": { + "start": 4673, + "length": 251, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [113, 114, 115, 116, 117, 118, 119], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "redeemExposures(Exposure[])" + } + } + } + } + ], + "description": "Vault.redeemExposures(Exposure[]) (contracts/core/Vault.sol#113-119) has external calls inside a loop: exposures[i].redeem() (contracts/core/Vault.sol#115)\n", + "markdown": "[Vault.redeemExposures(Exposure[])](contracts/core/Vault.sol#L113-L119) has external calls inside a loop: [exposures[i].redeem()](contracts/core/Vault.sol#L115)\n", + "first_markdown_element": "contracts/core/Vault.sol#L113-L119", + "id": "01aa5d049bc48e72ff906b543385ff9caecb8e5566910551f607713f18675e33", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "getReward", + "source_mapping": { + "start": 4291, + "length": 657, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "getReward(bool)" + } + }, + { + "type": "node", + "name": "balance = rewardToken.balanceOf(address(this))", + "source_mapping": { + "start": 4735, + "length": 54, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [118], + "starting_column": 17, + "ending_column": 71 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "getReward", + "source_mapping": { + "start": 4291, + "length": 657, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "getReward(bool)" + } + } + } + } + ], + "description": "AuraStaking.getReward(bool) (contracts/amo/AuraStaking.sol#110-125) has external calls inside a loop: balance = rewardToken.balanceOf(address(this)) (contracts/amo/AuraStaking.sol#118)\n", + "markdown": "[AuraStaking.getReward(bool)](contracts/amo/AuraStaking.sol#L110-L125) has external calls inside a loop: [balance = rewardToken.balanceOf(address(this))](contracts/amo/AuraStaking.sol#L118)\n", + "first_markdown_element": "contracts/amo/AuraStaking.sol#L110-L125", + "id": "dab641382da7356da589d9f335e183a99e5e9d0e41793c5d48158d07f1c57272", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "shutdown", + "source_mapping": { + "start": 11822, + "length": 1632, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "shutdown(address)" + } + }, + { + "type": "node", + "name": "_outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy)", + "source_mapping": { + "start": 12499, + "length": 64, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [296], + "starting_column": 13, + "ending_column": 77 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "shutdown", + "source_mapping": { + "start": 11822, + "length": 1632, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 8457, - "length": 49, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 168 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "price1CumulativeLast" - } - }, - { - "type": "node", - "name": "price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed", + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "shutdown(address)" + } + } + } + } + ], + "description": "TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319) has external calls inside a loop: _outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy) (contracts/v2/TreasuryReservesVault.sol#296)\n", + "markdown": "[TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319) has external calls inside a loop: [_outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy)](contracts/v2/TreasuryReservesVault.sol#L296)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L283-L319", + "id": "319ffc2aa8a4b776f15de07870a0d4d5abe0125bc3d87d10222a70895adf8bba", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "strategyBalanceSheet", + "source_mapping": { + "start": 19539, + "length": 1196, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "strategyBalanceSheet(address)" + } + }, + { + "type": "node", + "name": "dTokenBalances[i] = ITempleStrategy.AssetBalance(_token,borrowTokens[IERC20(_token)].dToken.balanceOf(strategy))", + "source_mapping": { + "start": 20490, + "length": 113, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [464], + "starting_column": 13, + "ending_column": 126 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "strategyBalanceSheet", + "source_mapping": { + "start": 19539, + "length": 1196, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 3689, - "length": 88, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 87 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "price1CumulativeLast" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "strategyBalanceSheet(address)" + } + } + } + } + ], + "description": "TreasuryReservesVault.strategyBalanceSheet(address) (contracts/v2/TreasuryReservesVault.sol#447-467) has external calls inside a loop: dTokenBalances[i] = ITempleStrategy.AssetBalance(_token,borrowTokens[IERC20(_token)].dToken.balanceOf(strategy)) (contracts/v2/TreasuryReservesVault.sol#464)\n", + "markdown": "[TreasuryReservesVault.strategyBalanceSheet(address)](contracts/v2/TreasuryReservesVault.sol#L447-L467) has external calls inside a loop: [dTokenBalances[i] = ITempleStrategy.AssetBalance(_token,borrowTokens[IERC20(_token)].dToken.balanceOf(strategy))](contracts/v2/TreasuryReservesVault.sol#L464)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L447-L467", + "id": "20bcad4f9996938c51c34e640ba88b7c6f2e553a9bfd34b0e170bf1b1904292b", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "latestAssetBalances", + "source_mapping": { + "start": 6069, + "length": 754, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "latestAssetBalances()" + } + }, + { + "type": "node", + "name": "_gnosisBalance = (IERC20(_asset).balanceOf(gnosisSafeWallet) + IERC20(_asset).balanceOf(address(this)))", + "source_mapping": { + "start": 6422, + "length": 250, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [165, 166, 167, 168, 169, 170], + "starting_column": 13, + "ending_column": 18 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "latestAssetBalances", + "source_mapping": { + "start": 6069, + "length": 754, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "latestAssetBalances()" + } + } + } + } + ], + "description": "GnosisStrategy.latestAssetBalances() (contracts/v2/strategies/GnosisStrategy.sol#155-177) has external calls inside a loop: _gnosisBalance = (IERC20(_asset).balanceOf(gnosisSafeWallet) + IERC20(_asset).balanceOf(address(this))) (contracts/v2/strategies/GnosisStrategy.sol#165-170)\n", + "markdown": "[GnosisStrategy.latestAssetBalances()](contracts/v2/strategies/GnosisStrategy.sol#L155-L177) has external calls inside a loop: [_gnosisBalance = (IERC20(_asset).balanceOf(gnosisSafeWallet) + IERC20(_asset).balanceOf(address(this)))](contracts/v2/strategies/GnosisStrategy.sol#L165-L170)\n", + "first_markdown_element": "contracts/v2/strategies/GnosisStrategy.sol#L155-L177", + "id": "303fe06184eefb239bc471a22808ec3f7ce192673117af8e628268271f896623", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "createExposure", + "source_mapping": { + "start": 1342, + "length": 415, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createExposure(string,string,IERC20)" + } + }, + { + "type": "node", + "name": "exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools)", + "source_mapping": { + "start": 1546, + "length": 81, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [51], + "starting_column": 9, + "ending_column": 90 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createExposure", + "source_mapping": { + "start": 1342, + "length": 415, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createExposure(string,string,IERC20)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools)", + "source_mapping": { + "start": 1546, + "length": 81, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [51], + "starting_column": 9, + "ending_column": 90 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createExposure", + "source_mapping": { + "start": 1342, + "length": 415, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createExposure(string,string,IERC20)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "revalTokens.push(address(revalToken))", + "source_mapping": { + "start": 1637, + "length": 37, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [52], + "starting_column": 9, + "ending_column": 46 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createExposure", + "source_mapping": { + "start": 1342, + "length": 415, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createExposure(string,string,IERC20)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "revalTokens" + } + } + ], + "description": "Reentrancy in OpsManager.createExposure(string,string,IERC20) (contracts/core/OpsManager.sol#45-54):\n\tExternal calls:\n\t- exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools) (contracts/core/OpsManager.sol#51)\n\tState variables written after the call(s):\n\t- revalTokens.push(address(revalToken)) (contracts/core/OpsManager.sol#52)\n", + "markdown": "Reentrancy in [OpsManager.createExposure(string,string,IERC20)](contracts/core/OpsManager.sol#L45-L54):\n\tExternal calls:\n\t- [exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools)](contracts/core/OpsManager.sol#L51)\n\tState variables written after the call(s):\n\t- [revalTokens.push(address(revalToken))](contracts/core/OpsManager.sol#L52)\n", + "first_markdown_element": "contracts/core/OpsManager.sol#L45-L54", + "id": "51556a077db66dfc3240e846360a26235f1360662907e56d0702b662359b5526", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "decreaseShares", + "source_mapping": { + "start": 2375, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [69, 70, 71, 72, 73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "decreaseShares(address,uint256)" + } + }, + { + "type": "node", + "name": "claimFor(account)", + "source_mapping": { + "start": 2461, + "length": 17, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [70], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "decreaseShares", + "source_mapping": { + "start": 2375, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [69, 70, 71, 72, 73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "decreaseShares(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", + "source_mapping": { + "start": 3214, + "length": 56, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claimFor", + "source_mapping": { + "start": 2738, + "length": 611, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "claimFor(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "claimFor(account)", + "source_mapping": { + "start": 2461, + "length": 17, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [70], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "decreaseShares", + "source_mapping": { + "start": 2375, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [69, 70, 71, 72, 73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "decreaseShares(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", + "source_mapping": { + "start": 3214, + "length": 56, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claimFor", + "source_mapping": { + "start": 2738, + "length": 611, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "claimFor(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "totalShares -= amount", + "source_mapping": { + "start": 2524, + "length": 21, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [73], + "starting_column": 9, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "decreaseShares", + "source_mapping": { + "start": 2375, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [69, 70, 71, 72, 73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "decreaseShares(address,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "totalShares" + } + } + ], + "description": "Reentrancy in TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77):\n\tExternal calls:\n\t- claimFor(account) (contracts/core/TreasuryFarmingRevenue.sol#70)\n\t\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tState variables written after the call(s):\n\t- totalShares -= amount (contracts/core/TreasuryFarmingRevenue.sol#73)\n", + "markdown": "Reentrancy in [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77):\n\tExternal calls:\n\t- [claimFor(account)](contracts/core/TreasuryFarmingRevenue.sol#L70)\n\t\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tState variables written after the call(s):\n\t- [totalShares -= amount](contracts/core/TreasuryFarmingRevenue.sol#L73)\n", + "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L69-L77", + "id": "0b0602eac2622c580688b404d63d57f1596371f95c0951d2b30d3754c6a94161", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + }, + { + "type": "node", + "name": "paymentContract.initialize(_token)", + "source_mapping": { + "start": 3294, + "length": 34, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [89], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "paymentContract.setAllocations(_dests,_allocations)", + "source_mapping": { + "start": 3338, + "length": 52, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [90], + "starting_column": 9, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "paymentContract.transferOwnership(msg.sender)", + "source_mapping": { + "start": 3401, + "length": 45, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [92], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)", + "source_mapping": { + "start": 3493, + "length": 165, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [95, 96, 97, 98, 99, 100], + "starting_column": 13, + "ending_column": 14 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "paymentContract.initialize(_token)", + "source_mapping": { + "start": 3294, + "length": 34, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [89], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "paymentContract.setAllocations(_dests,_allocations)", + "source_mapping": { + "start": 3338, + "length": 52, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [90], + "starting_column": 9, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "paymentContract.transferOwnership(msg.sender)", + "source_mapping": { + "start": 3401, + "length": 45, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [92], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)", + "source_mapping": { + "start": 3493, + "length": 165, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [95, 96, 97, 98, 99, 100], + "starting_column": 13, + "ending_column": 14 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "incrementEpoch(address(paymentContract),_totalFunding)", + "source_mapping": { + "start": 3669, + "length": 55, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [102], + "starting_column": 9, + "ending_column": 64 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "epochsFunded" + } + }, + { + "type": "node", + "name": "epochsFunded[lastPaidEpoch] = data", + "source_mapping": { + "start": 1754, + "length": 34, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [55], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "incrementEpoch", + "source_mapping": { + "start": 1448, + "length": 347, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "incrementEpoch(address,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "epochsFunded" + } + } + ], + "description": "Reentrancy in TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256) (contracts/admin/TempleTeamPaymentsFactory.sol#79-112):\n\tExternal calls:\n\t- paymentContract.initialize(_token) (contracts/admin/TempleTeamPaymentsFactory.sol#89)\n\t- paymentContract.setAllocations(_dests,_allocations) (contracts/admin/TempleTeamPaymentsFactory.sol#90)\n\t- paymentContract.transferOwnership(msg.sender) (contracts/admin/TempleTeamPaymentsFactory.sol#92)\n\t- SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#95-100)\n\tState variables written after the call(s):\n\t- incrementEpoch(address(paymentContract),_totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#102)\n\t\t- epochsFunded[lastPaidEpoch] = data (contracts/admin/TempleTeamPaymentsFactory.sol#55)\n", + "markdown": "Reentrancy in [TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256)](contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112):\n\tExternal calls:\n\t- [paymentContract.initialize(_token)](contracts/admin/TempleTeamPaymentsFactory.sol#L89)\n\t- [paymentContract.setAllocations(_dests,_allocations)](contracts/admin/TempleTeamPaymentsFactory.sol#L90)\n\t- [paymentContract.transferOwnership(msg.sender)](contracts/admin/TempleTeamPaymentsFactory.sol#L92)\n\t- [SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L95-L100)\n\tState variables written after the call(s):\n\t- [incrementEpoch(address(paymentContract),_totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L102)\n\t\t- [epochsFunded[lastPaidEpoch] = data](contracts/admin/TempleTeamPaymentsFactory.sol#L55)\n", + "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112", + "id": "38547e1ee698a66798b081a9551aa0d534f4641810a5486cd31cdbdd25f55313", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "directPayouts", + "source_mapping": { + "start": 4121, + "length": 829, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "directPayouts(IERC20,address[],uint256[])" + } + }, + { + "type": "node", + "name": "SafeERC20.safeTransferFrom(_token,msg.sender,dest,value)", + "source_mapping": { + "start": 4662, + "length": 59, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [133], + "starting_column": 13, + "ending_column": 72 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "directPayouts", + "source_mapping": { + "start": 4121, + "length": 829, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "directPayouts(IERC20,address[],uint256[])" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "SafeERC20.safeTransferFrom(_token,msg.sender,dest,value)", + "source_mapping": { + "start": 4662, + "length": 59, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [133], + "starting_column": 13, + "ending_column": 72 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "directPayouts", + "source_mapping": { + "start": 4121, + "length": 829, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "directPayouts(IERC20,address[],uint256[])" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "incrementEpoch(address(this),totalFunding)", + "source_mapping": { + "start": 4836, + "length": 43, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [140], + "starting_column": 9, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "directPayouts", + "source_mapping": { + "start": 4121, + "length": 829, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "directPayouts(IERC20,address[],uint256[])" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "epochsFunded" + } + }, + { + "type": "node", + "name": "epochsFunded[lastPaidEpoch] = data", + "source_mapping": { + "start": 1754, + "length": 34, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [55], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "incrementEpoch", + "source_mapping": { + "start": 1448, + "length": 347, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "incrementEpoch(address,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "epochsFunded" + } + }, + { + "type": "node", + "name": "incrementEpoch(address(this),totalFunding)", + "source_mapping": { + "start": 4836, + "length": 43, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [140], + "starting_column": 9, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "directPayouts", + "source_mapping": { + "start": 4121, + "length": 829, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "directPayouts(IERC20,address[],uint256[])" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "lastPaidEpoch" + } + }, + { + "type": "node", + "name": "data = FundingData({paymentContract:address(_paymentContract),totalFunding:_totalFunding,epoch:lastPaidEpoch ++})", + "source_mapping": { + "start": 1562, + "length": 182, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [50, 51, 52, 53, 54], + "starting_column": 9, + "ending_column": 11 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "incrementEpoch", + "source_mapping": { + "start": 1448, + "length": 347, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "incrementEpoch(address,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "lastPaidEpoch" + } + } + ], + "description": "Reentrancy in TempleTeamPaymentsFactory.directPayouts(IERC20,address[],uint256[]) (contracts/admin/TempleTeamPaymentsFactory.sol#119-143):\n\tExternal calls:\n\t- SafeERC20.safeTransferFrom(_token,msg.sender,dest,value) (contracts/admin/TempleTeamPaymentsFactory.sol#133)\n\tState variables written after the call(s):\n\t- incrementEpoch(address(this),totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#140)\n\t\t- epochsFunded[lastPaidEpoch] = data (contracts/admin/TempleTeamPaymentsFactory.sol#55)\n\t- incrementEpoch(address(this),totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#140)\n\t\t- data = FundingData({paymentContract:address(_paymentContract),totalFunding:_totalFunding,epoch:lastPaidEpoch ++}) (contracts/admin/TempleTeamPaymentsFactory.sol#50-54)\n", + "markdown": "Reentrancy in [TempleTeamPaymentsFactory.directPayouts(IERC20,address[],uint256[])](contracts/admin/TempleTeamPaymentsFactory.sol#L119-L143):\n\tExternal calls:\n\t- [SafeERC20.safeTransferFrom(_token,msg.sender,dest,value)](contracts/admin/TempleTeamPaymentsFactory.sol#L133)\n\tState variables written after the call(s):\n\t- [incrementEpoch(address(this),totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L140)\n\t\t- [epochsFunded[lastPaidEpoch] = data](contracts/admin/TempleTeamPaymentsFactory.sol#L55)\n\t- [incrementEpoch(address(this),totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L140)\n\t\t- [data = FundingData({paymentContract:address(_paymentContract),totalFunding:_totalFunding,epoch:lastPaidEpoch ++})](contracts/admin/TempleTeamPaymentsFactory.sol#L50-L54)\n", + "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L119-L143", + "id": "e7d7cc7383e1682a576694bbc276f3a8cb1f5f6783434f8f5336ea3b0d9bf554", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "increaseShares", + "source_mapping": { + "start": 2007, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "increaseShares(address,uint256)" + } + }, + { + "type": "node", + "name": "claimFor(account)", + "source_mapping": { + "start": 2093, + "length": 17, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [57], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "increaseShares", + "source_mapping": { + "start": 2007, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "increaseShares(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", + "source_mapping": { + "start": 3214, + "length": 56, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claimFor", + "source_mapping": { + "start": 2738, + "length": 611, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "claimFor(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "claimFor(account)", + "source_mapping": { + "start": 2093, + "length": 17, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [57], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "increaseShares", + "source_mapping": { + "start": 2007, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "increaseShares(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", + "source_mapping": { + "start": 3214, + "length": 56, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claimFor", + "source_mapping": { + "start": 2738, + "length": 611, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "claimFor(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "totalShares += amount", + "source_mapping": { + "start": 2156, + "length": 21, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [60], + "starting_column": 9, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "increaseShares", + "source_mapping": { + "start": 2007, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "increaseShares(address,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "totalShares" + } + } + ], + "description": "Reentrancy in TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64):\n\tExternal calls:\n\t- claimFor(account) (contracts/core/TreasuryFarmingRevenue.sol#57)\n\t\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tState variables written after the call(s):\n\t- totalShares += amount (contracts/core/TreasuryFarmingRevenue.sol#60)\n", + "markdown": "Reentrancy in [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64):\n\tExternal calls:\n\t- [claimFor(account)](contracts/core/TreasuryFarmingRevenue.sol#L57)\n\t\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tState variables written after the call(s):\n\t- [totalShares += amount](contracts/core/TreasuryFarmingRevenue.sol#L60)\n", + "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L56-L64", + "id": "842e91df89a71525a6459c0d1291885967545da62e3f06975364172343f78737", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "removeCollateral", + "source_mapping": { + "start": 6498, + "length": 1031, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, + 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, + 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, + 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeCollateral(uint128,address)" + } + }, + { + "type": "node", + "name": "circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)", + "source_mapping": { + "start": 7012, + "length": 118, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [173, 174, 175, 176, 177], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeCollateral", + "source_mapping": { + "start": 6498, + "length": 1031, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeCollateral(uint128,address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)", + "source_mapping": { + "start": 7012, + "length": 118, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [173, 174, 175, 176, 177], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeCollateral", + "source_mapping": { + "start": 6498, + "length": 1031, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeCollateral(uint128,address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "totalCollateral -= amount", + "source_mapping": { + "start": 7285, + "length": 25, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [181], + "starting_column": 9, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeCollateral", + "source_mapping": { + "start": 6498, + "length": 1031, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeCollateral(uint128,address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "totalCollateral" + } + } + ], + "description": "Reentrancy in TempleLineOfCredit.removeCollateral(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#166-190):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#173-177)\n\tState variables written after the call(s):\n\t- totalCollateral -= amount (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#181)\n", + "markdown": "Reentrancy in [TempleLineOfCredit.removeCollateral(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L173-L177)\n\tState variables written after the call(s):\n\t- [totalCollateral -= amount](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L181)\n", + "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190", + "id": "7e54b77ff600dbf6c2607432f645013fef59227e4ff7c91d2c9c62ef8ddf1980", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" + } + }, + { + "type": "node", + "name": "_safeTransfer(_token0,to,amount0)", + "source_mapping": { + "start": 6213, + "length": 35, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [131], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_safeTransfer(_token1,to,amount1)", + "source_mapping": { + "start": 6258, + "length": 35, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [132], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_safeTransfer(_token0,to,amount0)", + "source_mapping": { + "start": 6213, + "length": 35, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [131], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_safeTransfer(_token1,to,amount1)", + "source_mapping": { + "start": 6258, + "length": 35, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [132], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "source_mapping": { + "start": 6426, + "length": 49, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [136], + "starting_column": 9, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "price0CumulativeLast" + } + }, + { + "type": "node", + "name": "price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed", + "source_mapping": { + "start": 3587, + "length": 88, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [86], + "starting_column": 13, + "ending_column": 101 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "price0CumulativeLast" + } + }, + { + "type": "node", + "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "source_mapping": { + "start": 6426, + "length": 49, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [136], + "starting_column": 9, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "price1CumulativeLast" + } + }, + { + "type": "node", + "name": "price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed", + "source_mapping": { + "start": 3689, + "length": 88, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [87], + "starting_column": 13, + "ending_column": 101 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "price1CumulativeLast" + } + } + ], + "description": "Reentrancy in TempleUniswapV2Pair.burn(address) (contracts/amm/TempleUniswapV2Pair.sol#118-138):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0) (contracts/amm/TempleUniswapV2Pair.sol#131)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- _safeTransfer(_token1,to,amount1) (contracts/amm/TempleUniswapV2Pair.sol#132)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\tState variables written after the call(s):\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#136)\n\t\t- price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed (contracts/amm/TempleUniswapV2Pair.sol#86)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#136)\n\t\t- price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed (contracts/amm/TempleUniswapV2Pair.sol#87)\n", + "markdown": "Reentrancy in [TempleUniswapV2Pair.burn(address)](contracts/amm/TempleUniswapV2Pair.sol#L118-L138):\n\tExternal calls:\n\t- [_safeTransfer(_token0,to,amount0)](contracts/amm/TempleUniswapV2Pair.sol#L131)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [_safeTransfer(_token1,to,amount1)](contracts/amm/TempleUniswapV2Pair.sol#L132)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\tState variables written after the call(s):\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L136)\n\t\t- [price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed](contracts/amm/TempleUniswapV2Pair.sol#L86)\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L136)\n\t\t- [price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed](contracts/amm/TempleUniswapV2Pair.sol#L87)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L118-L138", + "id": "d6f7e9923264688e14af684f9180e869a190d782f4a8ab55d1efa22ac6b2ec72", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" + } + }, + { + "type": "node", + "name": "_safeTransfer(_token0,to,amount0Out)", + "source_mapping": { + "start": 7388, + "length": 38, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [153], + "starting_column": 29, + "ending_column": 67 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_safeTransfer(_token1,to,amount1Out)", + "source_mapping": { + "start": 7490, + "length": 38, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [154], + "starting_column": 29, + "ending_column": 67 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)", + "source_mapping": { + "start": 7593, + "length": 76, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [155], + "starting_column": 30, + "ending_column": 106 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "_safeTransfer(_token0,to,amount0Out)", + "source_mapping": { + "start": 7388, + "length": 38, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [153], + "starting_column": 29, + "ending_column": 67 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_safeTransfer(_token1,to,amount1Out)", + "source_mapping": { + "start": 7490, + "length": 38, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [154], + "starting_column": 29, + "ending_column": 67 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)", + "source_mapping": { + "start": 7593, + "length": 76, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [155], + "starting_column": 30, + "ending_column": 106 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "source_mapping": { + "start": 8457, + "length": 49, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [168], + "starting_column": 9, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "price0CumulativeLast" + } + }, + { + "type": "node", + "name": "price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed", + "source_mapping": { + "start": 3587, + "length": 88, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [86], + "starting_column": 13, + "ending_column": 101 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "price0CumulativeLast" + } + }, + { + "type": "node", + "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "source_mapping": { + "start": 8457, + "length": 49, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [168], + "starting_column": 9, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "price1CumulativeLast" + } + }, + { + "type": "node", + "name": "price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed", + "source_mapping": { + "start": 3689, + "length": 88, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [87], + "starting_column": 13, + "ending_column": 101 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "price1CumulativeLast" + } + } + ], + "description": "Reentrancy in TempleUniswapV2Pair.swap(uint256,uint256,address,bytes) (contracts/amm/TempleUniswapV2Pair.sol#141-170):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0Out) (contracts/amm/TempleUniswapV2Pair.sol#153)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- _safeTransfer(_token1,to,amount1Out) (contracts/amm/TempleUniswapV2Pair.sol#154)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data) (contracts/amm/TempleUniswapV2Pair.sol#155)\n\tState variables written after the call(s):\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#168)\n\t\t- price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed (contracts/amm/TempleUniswapV2Pair.sol#86)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#168)\n\t\t- price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed (contracts/amm/TempleUniswapV2Pair.sol#87)\n", + "markdown": "Reentrancy in [TempleUniswapV2Pair.swap(uint256,uint256,address,bytes)](contracts/amm/TempleUniswapV2Pair.sol#L141-L170):\n\tExternal calls:\n\t- [_safeTransfer(_token0,to,amount0Out)](contracts/amm/TempleUniswapV2Pair.sol#L153)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [_safeTransfer(_token1,to,amount1Out)](contracts/amm/TempleUniswapV2Pair.sol#L154)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)](contracts/amm/TempleUniswapV2Pair.sol#L155)\n\tState variables written after the call(s):\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L168)\n\t\t- [price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed](contracts/amm/TempleUniswapV2Pair.sol#L86)\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L168)\n\t\t- [price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed](contracts/amm/TempleUniswapV2Pair.sol#L87)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L141-L170", + "id": "4009158fb72c6a7f799d45778765abe734e526aff7ec82c4bb4384d474895f3f", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "adhocPayment", + "source_mapping": { + "start": 2861, + "length": 284, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [83, 84, 85, 86, 87, 88], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPayments", + "source_mapping": { + "start": 247, + "length": 3150, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "adhocPayment(address,uint256)" + } + }, + { + "type": "node", + "name": "SafeERC20.safeTransfer(TEMPLE,_to,_amount)", + "source_mapping": { + "start": 3058, + "length": 44, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [86], + "starting_column": 9, + "ending_column": 53 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "adhocPayment", + "source_mapping": { + "start": 2861, + "length": 284, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [83, 84, 85, 86, 87, 88], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPayments", + "source_mapping": { + "start": 247, + "length": 3150, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "adhocPayment(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "Claimed(_to,_amount)", + "source_mapping": { + "start": 3112, + "length": 26, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [87], + "starting_column": 9, + "ending_column": 35 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "adhocPayment", + "source_mapping": { + "start": 2861, + "length": 284, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [83, 84, 85, 86, 87, 88], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPayments", + "source_mapping": { + "start": 247, + "length": 3150, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "adhocPayment(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TempleTeamPayments.adhocPayment(address,uint256) (contracts/admin/TempleTeamPayments.sol#83-88):\n\tExternal calls:\n\t- SafeERC20.safeTransfer(TEMPLE,_to,_amount) (contracts/admin/TempleTeamPayments.sol#86)\n\tEvent emitted after the call(s):\n\t- Claimed(_to,_amount) (contracts/admin/TempleTeamPayments.sol#87)\n", + "markdown": "Reentrancy in [TempleTeamPayments.adhocPayment(address,uint256)](contracts/admin/TempleTeamPayments.sol#L83-L88):\n\tExternal calls:\n\t- [SafeERC20.safeTransfer(TEMPLE,_to,_amount)](contracts/admin/TempleTeamPayments.sol#L86)\n\tEvent emitted after the call(s):\n\t- [Claimed(_to,_amount)](contracts/admin/TempleTeamPayments.sol#L87)\n", + "first_markdown_element": "contracts/admin/TempleTeamPayments.sol#L83-L88", + "id": "081d1dfdebd16cea0856cb988c13c62e2d2d6e5c3fbd25c36620643fb11a0000", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "claim", + "source_mapping": { + "start": 2500, + "length": 355, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [74, 75, 76, 77, 78, 79, 80, 81], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPayments", + "source_mapping": { + "start": 247, + "length": 3150, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "claim()" + } + }, + { + "type": "node", + "name": "SafeERC20.safeTransfer(TEMPLE,msg.sender,claimable)", + "source_mapping": { + "start": 2750, + "length": 53, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [79], + "starting_column": 9, + "ending_column": 62 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claim", + "source_mapping": { + "start": 2500, + "length": 355, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [74, 75, 76, 77, 78, 79, 80, 81], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPayments", + "source_mapping": { + "start": 247, + "length": 3150, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "claim()" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "Claimed(msg.sender,claimable)", + "source_mapping": { + "start": 2813, + "length": 35, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [80], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claim", + "source_mapping": { + "start": 2500, + "length": 355, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [74, 75, 76, 77, 78, 79, 80, 81], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPayments", + "source_mapping": { + "start": 247, + "length": 3150, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "claim()" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TempleTeamPayments.claim() (contracts/admin/TempleTeamPayments.sol#74-81):\n\tExternal calls:\n\t- SafeERC20.safeTransfer(TEMPLE,msg.sender,claimable) (contracts/admin/TempleTeamPayments.sol#79)\n\tEvent emitted after the call(s):\n\t- Claimed(msg.sender,claimable) (contracts/admin/TempleTeamPayments.sol#80)\n", + "markdown": "Reentrancy in [TempleTeamPayments.claim()](contracts/admin/TempleTeamPayments.sol#L74-L81):\n\tExternal calls:\n\t- [SafeERC20.safeTransfer(TEMPLE,msg.sender,claimable)](contracts/admin/TempleTeamPayments.sol#L79)\n\tEvent emitted after the call(s):\n\t- [Claimed(msg.sender,claimable)](contracts/admin/TempleTeamPayments.sol#L80)\n", + "first_markdown_element": "contracts/admin/TempleTeamPayments.sol#L74-L81", + "id": "5122a045d2e21480d0560d2c58820df1a98500cfc6453d3088b53c090e7d16e3", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "claim", + "source_mapping": { + "start": 2491, + "length": 452, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsV2", + "source_mapping": { + "start": 346, + "length": 2599, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "claim(uint256)" + } + }, + { + "type": "node", + "name": "SafeERC20.safeTransfer(temple,msg.sender,_claimAmount)", + "source_mapping": { + "start": 2832, + "length": 56, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [83], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claim", + "source_mapping": { + "start": 2491, + "length": 452, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsV2", + "source_mapping": { + "start": 346, + "length": 2599, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "claim(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "Claimed(msg.sender,_claimAmount)", + "source_mapping": { + "start": 2898, + "length": 38, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [84], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claim", + "source_mapping": { + "start": 2491, + "length": 452, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsV2", + "source_mapping": { + "start": 346, + "length": 2599, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "claim(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TempleTeamPaymentsV2.claim(uint256) (contracts/admin/TempleTeamPaymentsV2.sol#74-85):\n\tExternal calls:\n\t- SafeERC20.safeTransfer(temple,msg.sender,_claimAmount) (contracts/admin/TempleTeamPaymentsV2.sol#83)\n\tEvent emitted after the call(s):\n\t- Claimed(msg.sender,_claimAmount) (contracts/admin/TempleTeamPaymentsV2.sol#84)\n", + "markdown": "Reentrancy in [TempleTeamPaymentsV2.claim(uint256)](contracts/admin/TempleTeamPaymentsV2.sol#L74-L85):\n\tExternal calls:\n\t- [SafeERC20.safeTransfer(temple,msg.sender,_claimAmount)](contracts/admin/TempleTeamPaymentsV2.sol#L83)\n\tEvent emitted after the call(s):\n\t- [Claimed(msg.sender,_claimAmount)](contracts/admin/TempleTeamPaymentsV2.sol#L84)\n", + "first_markdown_element": "contracts/admin/TempleTeamPaymentsV2.sol#L74-L85", + "id": "e805076f6ba37558b2d1e1e33a36ca2141157b088d4472056b82f8af89078bb2", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "claimFor", + "source_mapping": { + "start": 2738, + "length": 611, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "claimFor(address)" + } + }, + { + "type": "node", + "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", + "source_mapping": { + "start": 3214, + "length": 56, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claimFor", + "source_mapping": { + "start": 2738, + "length": 611, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "claimFor(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "RevenueClaimed(account,unclaimedScaled / SCALING_FACTOR)", + "source_mapping": { + "start": 3280, + "length": 62, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [92], + "starting_column": 9, + "ending_column": 71 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claimFor", + "source_mapping": { + "start": 2738, + "length": 611, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "claimFor(address)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TreasuryFarmingRevenue.claimFor(address) (contracts/core/TreasuryFarmingRevenue.sol#80-93):\n\tExternal calls:\n\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tEvent emitted after the call(s):\n\t- RevenueClaimed(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#92)\n", + "markdown": "Reentrancy in [TreasuryFarmingRevenue.claimFor(address)](contracts/core/TreasuryFarmingRevenue.sol#L80-L93):\n\tExternal calls:\n\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tEvent emitted after the call(s):\n\t- [RevenueClaimed(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L92)\n", + "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L80-L93", + "id": "d8563f03511a537e7bffa702571db6c52a8f76800b24690b23270dd982c4ccc2", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "createExposure", + "source_mapping": { + "start": 1342, + "length": 415, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createExposure(string,string,IERC20)" + } + }, + { + "type": "node", + "name": "exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools)", + "source_mapping": { + "start": 1546, + "length": 81, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [51], + "starting_column": 9, + "ending_column": 90 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createExposure", + "source_mapping": { + "start": 1342, + "length": 415, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createExposure(string,string,IERC20)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "CreateExposure(address(exposure),address(pools[revalToken]))", + "source_mapping": { + "start": 1684, + "length": 66, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [53], + "starting_column": 9, + "ending_column": 75 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createExposure", + "source_mapping": { + "start": 1342, + "length": 415, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createExposure(string,string,IERC20)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in OpsManager.createExposure(string,string,IERC20) (contracts/core/OpsManager.sol#45-54):\n\tExternal calls:\n\t- exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools) (contracts/core/OpsManager.sol#51)\n\tEvent emitted after the call(s):\n\t- CreateExposure(address(exposure),address(pools[revalToken])) (contracts/core/OpsManager.sol#53)\n", + "markdown": "Reentrancy in [OpsManager.createExposure(string,string,IERC20)](contracts/core/OpsManager.sol#L45-L54):\n\tExternal calls:\n\t- [exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools)](contracts/core/OpsManager.sol#L51)\n\tEvent emitted after the call(s):\n\t- [CreateExposure(address(exposure),address(pools[revalToken]))](contracts/core/OpsManager.sol#L53)\n", + "first_markdown_element": "contracts/core/OpsManager.sol#L45-L54", + "id": "4c0848edc4ba02c1e3d1ebe7d87498d178e87ad8a446b774ebd37d6847435833", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "createVaultInstance", + "source_mapping": { + "start": 1980, + "length": 804, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createVaultInstance(string,string,uint256,uint256,Rational,uint256)" + } + }, + { + "type": "node", + "name": "templeExposure.setMinterState(address(vault),true)", + "source_mapping": { + "start": 2676, + "length": 51, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [87], + "starting_column": 9, + "ending_column": 60 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createVaultInstance", + "source_mapping": { + "start": 1980, + "length": 804, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createVaultInstance(string,string,uint256,uint256,Rational,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "CreateVaultInstance(address(vault))", + "source_mapping": { + "start": 2737, + "length": 40, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [88], + "starting_column": 9, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createVaultInstance", + "source_mapping": { + "start": 1980, + "length": 804, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createVaultInstance(string,string,uint256,uint256,Rational,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in OpsManager.createVaultInstance(string,string,uint256,uint256,Rational,uint256) (contracts/core/OpsManager.sol#63-89):\n\tExternal calls:\n\t- templeExposure.setMinterState(address(vault),true) (contracts/core/OpsManager.sol#87)\n\tEvent emitted after the call(s):\n\t- CreateVaultInstance(address(vault)) (contracts/core/OpsManager.sol#88)\n", + "markdown": "Reentrancy in [OpsManager.createVaultInstance(string,string,uint256,uint256,Rational,uint256)](contracts/core/OpsManager.sol#L63-L89):\n\tExternal calls:\n\t- [templeExposure.setMinterState(address(vault),true)](contracts/core/OpsManager.sol#L87)\n\tEvent emitted after the call(s):\n\t- [CreateVaultInstance(address(vault))](contracts/core/OpsManager.sol#L88)\n", + "first_markdown_element": "contracts/core/OpsManager.sol#L63-L89", + "id": "df955297def3da87ad4df693d7ae4b7e7f50baa97a7182d7ae0ddc97fdb09441", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "decreaseShares", + "source_mapping": { + "start": 2375, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [69, 70, 71, 72, 73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "decreaseShares(address,uint256)" + } + }, + { + "type": "node", + "name": "claimFor(account)", + "source_mapping": { + "start": 2461, + "length": 17, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [70], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "decreaseShares", + "source_mapping": { + "start": 2375, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [69, 70, 71, 72, 73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "decreaseShares(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", + "source_mapping": { + "start": 3214, + "length": 56, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claimFor", + "source_mapping": { + "start": 2738, + "length": 611, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "claimFor(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "DecreaseShares(account,amount)", + "source_mapping": { + "start": 2634, + "length": 36, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [76], + "starting_column": 9, + "ending_column": 45 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "decreaseShares", + "source_mapping": { + "start": 2375, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [69, 70, 71, 72, 73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "decreaseShares(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77):\n\tExternal calls:\n\t- claimFor(account) (contracts/core/TreasuryFarmingRevenue.sol#70)\n\t\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tEvent emitted after the call(s):\n\t- DecreaseShares(account,amount) (contracts/core/TreasuryFarmingRevenue.sol#76)\n", + "markdown": "Reentrancy in [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77):\n\tExternal calls:\n\t- [claimFor(account)](contracts/core/TreasuryFarmingRevenue.sol#L70)\n\t\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tEvent emitted after the call(s):\n\t- [DecreaseShares(account,amount)](contracts/core/TreasuryFarmingRevenue.sol#L76)\n", + "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L69-L77", + "id": "10f84609b6b87bcc768aa396dd6ac6045289ca78c3cb64ee97e4437cfb7c006a", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + }, + { + "type": "node", + "name": "paymentContract.initialize(_token)", + "source_mapping": { + "start": 3294, + "length": 34, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [89], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "paymentContract.setAllocations(_dests,_allocations)", + "source_mapping": { + "start": 3338, + "length": 52, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [90], + "starting_column": 9, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "paymentContract.transferOwnership(msg.sender)", + "source_mapping": { + "start": 3401, + "length": 45, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [92], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)", + "source_mapping": { + "start": 3493, + "length": 165, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [95, 96, 97, 98, 99, 100], + "starting_column": 13, + "ending_column": 14 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "FundingDeployed(lastPaidEpoch,_dests,_allocations,address(paymentContract))", + "source_mapping": { + "start": 3735, + "length": 141, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [104, 105, 106, 107, 108, 109], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deployPayouts", + "source_mapping": { + "start": 2838, + "length": 1078, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256) (contracts/admin/TempleTeamPaymentsFactory.sol#79-112):\n\tExternal calls:\n\t- paymentContract.initialize(_token) (contracts/admin/TempleTeamPaymentsFactory.sol#89)\n\t- paymentContract.setAllocations(_dests,_allocations) (contracts/admin/TempleTeamPaymentsFactory.sol#90)\n\t- paymentContract.transferOwnership(msg.sender) (contracts/admin/TempleTeamPaymentsFactory.sol#92)\n\t- SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#95-100)\n\tEvent emitted after the call(s):\n\t- FundingDeployed(lastPaidEpoch,_dests,_allocations,address(paymentContract)) (contracts/admin/TempleTeamPaymentsFactory.sol#104-109)\n", + "markdown": "Reentrancy in [TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256)](contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112):\n\tExternal calls:\n\t- [paymentContract.initialize(_token)](contracts/admin/TempleTeamPaymentsFactory.sol#L89)\n\t- [paymentContract.setAllocations(_dests,_allocations)](contracts/admin/TempleTeamPaymentsFactory.sol#L90)\n\t- [paymentContract.transferOwnership(msg.sender)](contracts/admin/TempleTeamPaymentsFactory.sol#L92)\n\t- [SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L95-L100)\n\tEvent emitted after the call(s):\n\t- [FundingDeployed(lastPaidEpoch,_dests,_allocations,address(paymentContract))](contracts/admin/TempleTeamPaymentsFactory.sol#L104-L109)\n", + "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112", + "id": "e09076945359fed962d2ff6dfd37bfd369cd1b53e0192377da32895ae9a9f829", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "depositFor", + "source_mapping": { + "start": 6905, + "length": 773, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "depositFor(address,uint256)" + } + }, + { + "type": "node", + "name": "SafeERC20.safeTransferFrom(templeToken,msg.sender,vaultedTempleAccount,_amount)", + "source_mapping": { + "start": 7461, + "length": 82, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [187], + "starting_column": 13, + "ending_column": 95 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "depositFor", + "source_mapping": { + "start": 6905, + "length": 773, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "depositFor(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "templeExposureToken.mint(address(this),_amount)", + "source_mapping": { + "start": 7557, + "length": 48, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [188], + "starting_column": 13, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "depositFor", + "source_mapping": { + "start": 6905, + "length": 773, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "depositFor(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "Deposit(_account,_amount,amountStaked)", + "source_mapping": { + "start": 7626, + "length": 45, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [191], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "depositFor", + "source_mapping": { + "start": 6905, + "length": 773, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "depositFor(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in Vault.depositFor(address,uint256) (contracts/core/Vault.sol#176-192):\n\tExternal calls:\n\t- SafeERC20.safeTransferFrom(templeToken,msg.sender,vaultedTempleAccount,_amount) (contracts/core/Vault.sol#187)\n\t- templeExposureToken.mint(address(this),_amount) (contracts/core/Vault.sol#188)\n\tEvent emitted after the call(s):\n\t- Deposit(_account,_amount,amountStaked) (contracts/core/Vault.sol#191)\n", + "markdown": "Reentrancy in [Vault.depositFor(address,uint256)](contracts/core/Vault.sol#L176-L192):\n\tExternal calls:\n\t- [SafeERC20.safeTransferFrom(templeToken,msg.sender,vaultedTempleAccount,_amount)](contracts/core/Vault.sol#L187)\n\t- [templeExposureToken.mint(address(this),_amount)](contracts/core/Vault.sol#L188)\n\tEvent emitted after the call(s):\n\t- [Deposit(_account,_amount,amountStaked)](contracts/core/Vault.sol#L191)\n", + "first_markdown_element": "contracts/core/Vault.sol#L176-L192", + "id": "9b7f364b05b547bddc816a0d5b06d8980808dad51839e6d4b0a54fad3ee65e71", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "directPayouts", + "source_mapping": { + "start": 4121, + "length": 829, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "directPayouts(IERC20,address[],uint256[])" + } + }, + { + "type": "node", + "name": "SafeERC20.safeTransferFrom(_token,msg.sender,dest,value)", + "source_mapping": { + "start": 4662, + "length": 59, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [133], + "starting_column": 13, + "ending_column": 72 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "directPayouts", + "source_mapping": { + "start": 4121, + "length": 829, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "directPayouts(IERC20,address[],uint256[])" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "FundingPaid(lastPaidEpoch,_dests,_allocations)", + "source_mapping": { + "start": 4890, + "length": 53, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [142], + "starting_column": 9, + "ending_column": 62 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "directPayouts", + "source_mapping": { + "start": 4121, + "length": 829, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "directPayouts(IERC20,address[],uint256[])" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TempleTeamPaymentsFactory.directPayouts(IERC20,address[],uint256[]) (contracts/admin/TempleTeamPaymentsFactory.sol#119-143):\n\tExternal calls:\n\t- SafeERC20.safeTransferFrom(_token,msg.sender,dest,value) (contracts/admin/TempleTeamPaymentsFactory.sol#133)\n\tEvent emitted after the call(s):\n\t- FundingPaid(lastPaidEpoch,_dests,_allocations) (contracts/admin/TempleTeamPaymentsFactory.sol#142)\n", + "markdown": "Reentrancy in [TempleTeamPaymentsFactory.directPayouts(IERC20,address[],uint256[])](contracts/admin/TempleTeamPaymentsFactory.sol#L119-L143):\n\tExternal calls:\n\t- [SafeERC20.safeTransferFrom(_token,msg.sender,dest,value)](contracts/admin/TempleTeamPaymentsFactory.sol#L133)\n\tEvent emitted after the call(s):\n\t- [FundingPaid(lastPaidEpoch,_dests,_allocations)](contracts/admin/TempleTeamPaymentsFactory.sol#L142)\n", + "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L119-L143", + "id": "6c80a1f2386bfefc5e825932ef0f67802c5f2af3857235cf886592ad9e720a6d", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "increaseShares", + "source_mapping": { + "start": 2007, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "increaseShares(address,uint256)" + } + }, + { + "type": "node", + "name": "claimFor(account)", + "source_mapping": { + "start": 2093, + "length": 17, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [57], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "increaseShares", + "source_mapping": { + "start": 2007, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "increaseShares(address,uint256)" } - ], - "description": "Reentrancy in TempleUniswapV2Pair.swap(uint256,uint256,address,bytes) (contracts/amm/TempleUniswapV2Pair.sol#141-170):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0Out) (contracts/amm/TempleUniswapV2Pair.sol#153)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- _safeTransfer(_token1,to,amount1Out) (contracts/amm/TempleUniswapV2Pair.sol#154)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data) (contracts/amm/TempleUniswapV2Pair.sol#155)\n\tState variables written after the call(s):\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#168)\n\t\t- price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed (contracts/amm/TempleUniswapV2Pair.sol#86)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#168)\n\t\t- price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed (contracts/amm/TempleUniswapV2Pair.sol#87)\n", - "markdown": "Reentrancy in [TempleUniswapV2Pair.swap(uint256,uint256,address,bytes)](contracts/amm/TempleUniswapV2Pair.sol#L141-L170):\n\tExternal calls:\n\t- [_safeTransfer(_token0,to,amount0Out)](contracts/amm/TempleUniswapV2Pair.sol#L153)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [_safeTransfer(_token1,to,amount1Out)](contracts/amm/TempleUniswapV2Pair.sol#L154)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)](contracts/amm/TempleUniswapV2Pair.sol#L155)\n\tState variables written after the call(s):\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L168)\n\t\t- [price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed](contracts/amm/TempleUniswapV2Pair.sol#L86)\n\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L168)\n\t\t- [price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed](contracts/amm/TempleUniswapV2Pair.sol#L87)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L141-L170", - "id": "4009158fb72c6a7f799d45778765abe734e526aff7ec82c4bb4384d474895f3f", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "removeCollateral", - "source_mapping": { - "start": 6498, - "length": 1031, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeCollateral(uint128,address)" - } - }, - { - "type": "node", - "name": "circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)", - "source_mapping": { - "start": 7012, - "length": 118, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 173, - 174, - 175, - 176, - 177 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeCollateral", - "source_mapping": { - "start": 6498, - "length": 1031, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeCollateral(uint128,address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)", - "source_mapping": { - "start": 7012, - "length": 118, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 173, - 174, - 175, - 176, - 177 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeCollateral", - "source_mapping": { - "start": 6498, - "length": 1031, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeCollateral(uint128,address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "totalCollateral -= amount", - "source_mapping": { - "start": 7285, - "length": 25, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 181 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeCollateral", - "source_mapping": { - "start": 6498, - "length": 1031, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeCollateral(uint128,address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "totalCollateral" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", + "source_mapping": { + "start": 3214, + "length": 56, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claimFor", + "source_mapping": { + "start": 2738, + "length": 611, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "claimFor(address)" } - ], - "description": "Reentrancy in TempleLineOfCredit.removeCollateral(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#166-190):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#173-177)\n\tState variables written after the call(s):\n\t- totalCollateral -= amount (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#181)\n", - "markdown": "Reentrancy in [TempleLineOfCredit.removeCollateral(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L173-L177)\n\tState variables written after the call(s):\n\t- [totalCollateral -= amount](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L181)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190", - "id": "7e54b77ff600dbf6c2607432f645013fef59227e4ff7c91d2c9c62ef8ddf1980", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "createExposure", - "source_mapping": { - "start": 1322, - "length": 415, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createExposure(string,string,IERC20)" - } - }, - { - "type": "node", - "name": "exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools)", - "source_mapping": { - "start": 1526, - "length": 81, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 51 - ], - "starting_column": 9, - "ending_column": 90 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "createExposure", - "source_mapping": { - "start": 1322, - "length": 415, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createExposure(string,string,IERC20)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools)", - "source_mapping": { - "start": 1526, - "length": 81, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 51 - ], - "starting_column": 9, - "ending_column": 90 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "createExposure", - "source_mapping": { - "start": 1322, - "length": 415, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createExposure(string,string,IERC20)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "revalTokens.push(address(revalToken))", - "source_mapping": { - "start": 1617, - "length": 37, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 52 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "createExposure", - "source_mapping": { - "start": 1322, - "length": 415, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createExposure(string,string,IERC20)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "revalTokens" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "IncreaseShares(account,amount)", + "source_mapping": { + "start": 2266, + "length": 36, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [63], + "starting_column": 9, + "ending_column": 45 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "increaseShares", + "source_mapping": { + "start": 2007, + "length": 302, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryFarmingRevenue", + "source_mapping": { + "start": 547, + "length": 3079, + "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/TreasuryFarmingRevenue.sol", + "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "increaseShares(address,uint256)" } - ], - "description": "Reentrancy in OpsManager.createExposure(string,string,IERC20) (contracts/core/OpsManager.sol#45-54):\n\tExternal calls:\n\t- exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools) (contracts/core/OpsManager.sol#51)\n\tState variables written after the call(s):\n\t- revalTokens.push(address(revalToken)) (contracts/core/OpsManager.sol#52)\n", - "markdown": "Reentrancy in [OpsManager.createExposure(string,string,IERC20)](contracts/core/OpsManager.sol#L45-L54):\n\tExternal calls:\n\t- [exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools)](contracts/core/OpsManager.sol#L51)\n\tState variables written after the call(s):\n\t- [revalTokens.push(address(revalToken))](contracts/core/OpsManager.sol#L52)\n", - "first_markdown_element": "contracts/core/OpsManager.sol#L45-L54", - "id": "51556a077db66dfc3240e846360a26235f1360662907e56d0702b662359b5526", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "decreaseShares", - "source_mapping": { - "start": 2355, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "decreaseShares(address,uint256)" - } - }, - { - "type": "node", - "name": "claimFor(account)", - "source_mapping": { - "start": 2441, - "length": 17, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 70 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "decreaseShares", - "source_mapping": { - "start": 2355, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "decreaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", - "source_mapping": { - "start": 3194, - "length": 56, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 91 - ], - "starting_column": 9, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claimFor", - "source_mapping": { - "start": 2718, - "length": 611, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "claimFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "claimFor(account)", - "source_mapping": { - "start": 2441, - "length": 17, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 70 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "decreaseShares", - "source_mapping": { - "start": 2355, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "decreaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", - "source_mapping": { - "start": 3194, - "length": 56, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 91 - ], - "starting_column": 9, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claimFor", - "source_mapping": { - "start": 2718, - "length": 611, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "claimFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "totalShares -= amount", - "source_mapping": { - "start": 2504, - "length": 21, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 73 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "decreaseShares", - "source_mapping": { - "start": 2355, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "decreaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "totalShares" - } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64):\n\tExternal calls:\n\t- claimFor(account) (contracts/core/TreasuryFarmingRevenue.sol#57)\n\t\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tEvent emitted after the call(s):\n\t- IncreaseShares(account,amount) (contracts/core/TreasuryFarmingRevenue.sol#63)\n", + "markdown": "Reentrancy in [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64):\n\tExternal calls:\n\t- [claimFor(account)](contracts/core/TreasuryFarmingRevenue.sol#L57)\n\t\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tEvent emitted after the call(s):\n\t- [IncreaseShares(account,amount)](contracts/core/TreasuryFarmingRevenue.sol#L63)\n", + "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L56-L64", + "id": "d4561252e63b6b2b82404c62a37f3524f0af810644056f99e52c4028a071621f", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "lockFor", + "source_mapping": { + "start": 943, + "length": 494, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "LockedOGTemple", + "source_mapping": { + "start": 213, + "length": 2143, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Reentrancy in TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77):\n\tExternal calls:\n\t- claimFor(account) (contracts/core/TreasuryFarmingRevenue.sol#70)\n\t\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tState variables written after the call(s):\n\t- totalShares -= amount (contracts/core/TreasuryFarmingRevenue.sol#73)\n", - "markdown": "Reentrancy in [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77):\n\tExternal calls:\n\t- [claimFor(account)](contracts/core/TreasuryFarmingRevenue.sol#L70)\n\t\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tState variables written after the call(s):\n\t- [totalShares -= amount](contracts/core/TreasuryFarmingRevenue.sol#L73)\n", - "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L69-L77", - "id": "0b0602eac2622c580688b404d63d57f1596371f95c0951d2b30d3754c6a94161", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - }, - { - "type": "node", - "name": "paymentContract.initialize(_token)", - "source_mapping": { - "start": 3274, - "length": 34, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 89 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "paymentContract.setAllocations(_dests,_allocations)", - "source_mapping": { - "start": 3318, - "length": 52, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 90 - ], - "starting_column": 9, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "paymentContract.transferOwnership(msg.sender)", - "source_mapping": { - "start": 3381, - "length": 45, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 92 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)", - "source_mapping": { - "start": 3473, - "length": 165, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 13, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "paymentContract.initialize(_token)", - "source_mapping": { - "start": 3274, - "length": 34, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 89 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "paymentContract.setAllocations(_dests,_allocations)", - "source_mapping": { - "start": 3318, - "length": 52, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 90 - ], - "starting_column": 9, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "paymentContract.transferOwnership(msg.sender)", - "source_mapping": { - "start": 3381, - "length": 45, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 92 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)", - "source_mapping": { - "start": 3473, - "length": 165, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 13, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "incrementEpoch(address(paymentContract),_totalFunding)", - "source_mapping": { - "start": 3649, - "length": 55, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 102 - ], - "starting_column": 9, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "epochsFunded" - } - }, - { - "type": "node", - "name": "epochsFunded[lastPaidEpoch] = data", - "source_mapping": { - "start": 1734, - "length": 34, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 55 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "incrementEpoch", - "source_mapping": { - "start": 1428, - "length": 347, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "incrementEpoch(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "epochsFunded" - } + }, + "signature": "lockFor(address,uint256,uint256)" + } + }, + { + "type": "node", + "name": "SafeERC20.safeTransferFrom(OG_TEMPLE,msg.sender,address(this),_amountOGTemple)", + "source_mapping": { + "start": 1247, + "length": 111, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [46, 47, 48, 49, 50, 51], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "lockFor", + "source_mapping": { + "start": 943, + "length": 494, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "LockedOGTemple", + "source_mapping": { + "start": 213, + "length": 2143, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "lockFor(address,uint256,uint256)" } - ], - "description": "Reentrancy in TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256) (contracts/admin/TempleTeamPaymentsFactory.sol#79-112):\n\tExternal calls:\n\t- paymentContract.initialize(_token) (contracts/admin/TempleTeamPaymentsFactory.sol#89)\n\t- paymentContract.setAllocations(_dests,_allocations) (contracts/admin/TempleTeamPaymentsFactory.sol#90)\n\t- paymentContract.transferOwnership(msg.sender) (contracts/admin/TempleTeamPaymentsFactory.sol#92)\n\t- SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#95-100)\n\tState variables written after the call(s):\n\t- incrementEpoch(address(paymentContract),_totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#102)\n\t\t- epochsFunded[lastPaidEpoch] = data (contracts/admin/TempleTeamPaymentsFactory.sol#55)\n", - "markdown": "Reentrancy in [TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256)](contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112):\n\tExternal calls:\n\t- [paymentContract.initialize(_token)](contracts/admin/TempleTeamPaymentsFactory.sol#L89)\n\t- [paymentContract.setAllocations(_dests,_allocations)](contracts/admin/TempleTeamPaymentsFactory.sol#L90)\n\t- [paymentContract.transferOwnership(msg.sender)](contracts/admin/TempleTeamPaymentsFactory.sol#L92)\n\t- [SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L95-L100)\n\tState variables written after the call(s):\n\t- [incrementEpoch(address(paymentContract),_totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L102)\n\t\t- [epochsFunded[lastPaidEpoch] = data](contracts/admin/TempleTeamPaymentsFactory.sol#L55)\n", - "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112", - "id": "38547e1ee698a66798b081a9551aa0d534f4641810a5486cd31cdbdd25f55313", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "directPayouts", - "source_mapping": { - "start": 4101, - "length": 829, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "directPayouts(IERC20,address[],uint256[])" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(_token,msg.sender,dest,value)", - "source_mapping": { - "start": 4642, - "length": 59, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 133 - ], - "starting_column": 13, - "ending_column": 72 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "directPayouts", - "source_mapping": { - "start": 4101, - "length": 829, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "directPayouts(IERC20,address[],uint256[])" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(_token,msg.sender,dest,value)", - "source_mapping": { - "start": 4642, - "length": 59, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 133 - ], - "starting_column": 13, - "ending_column": 72 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "directPayouts", - "source_mapping": { - "start": 4101, - "length": 829, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "directPayouts(IERC20,address[],uint256[])" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "incrementEpoch(address(this),totalFunding)", - "source_mapping": { - "start": 4816, - "length": 43, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 140 - ], - "starting_column": 9, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "directPayouts", - "source_mapping": { - "start": 4101, - "length": 829, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "directPayouts(IERC20,address[],uint256[])" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "epochsFunded" - } - }, - { - "type": "node", - "name": "epochsFunded[lastPaidEpoch] = data", - "source_mapping": { - "start": 1734, - "length": 34, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 55 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "incrementEpoch", - "source_mapping": { - "start": 1428, - "length": 347, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "incrementEpoch(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "epochsFunded" - } - }, - { - "type": "node", - "name": "incrementEpoch(address(this),totalFunding)", - "source_mapping": { - "start": 4816, - "length": 43, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 140 - ], - "starting_column": 9, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "directPayouts", - "source_mapping": { - "start": 4101, - "length": 829, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "directPayouts(IERC20,address[],uint256[])" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "lastPaidEpoch" - } - }, - { - "type": "node", - "name": "data = FundingData({paymentContract:address(_paymentContract),totalFunding:_totalFunding,epoch:lastPaidEpoch ++})", - "source_mapping": { - "start": 1542, - "length": 182, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 50, - 51, - 52, - 53, - 54 - ], - "starting_column": 9, - "ending_column": 11 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "incrementEpoch", - "source_mapping": { - "start": 1428, - "length": 347, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "incrementEpoch(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "lastPaidEpoch" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "OGTempleLocked(_staker,_amountOGTemple,_lockedUntilTimestamp)", + "source_mapping": { + "start": 1364, + "length": 68, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [52], + "starting_column": 5, + "ending_column": 73 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "lockFor", + "source_mapping": { + "start": 943, + "length": 494, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "LockedOGTemple", + "source_mapping": { + "start": 213, + "length": 2143, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "lockFor(address,uint256,uint256)" } - ], - "description": "Reentrancy in TempleTeamPaymentsFactory.directPayouts(IERC20,address[],uint256[]) (contracts/admin/TempleTeamPaymentsFactory.sol#119-143):\n\tExternal calls:\n\t- SafeERC20.safeTransferFrom(_token,msg.sender,dest,value) (contracts/admin/TempleTeamPaymentsFactory.sol#133)\n\tState variables written after the call(s):\n\t- incrementEpoch(address(this),totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#140)\n\t\t- epochsFunded[lastPaidEpoch] = data (contracts/admin/TempleTeamPaymentsFactory.sol#55)\n\t- incrementEpoch(address(this),totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#140)\n\t\t- data = FundingData({paymentContract:address(_paymentContract),totalFunding:_totalFunding,epoch:lastPaidEpoch ++}) (contracts/admin/TempleTeamPaymentsFactory.sol#50-54)\n", - "markdown": "Reentrancy in [TempleTeamPaymentsFactory.directPayouts(IERC20,address[],uint256[])](contracts/admin/TempleTeamPaymentsFactory.sol#L119-L143):\n\tExternal calls:\n\t- [SafeERC20.safeTransferFrom(_token,msg.sender,dest,value)](contracts/admin/TempleTeamPaymentsFactory.sol#L133)\n\tState variables written after the call(s):\n\t- [incrementEpoch(address(this),totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L140)\n\t\t- [epochsFunded[lastPaidEpoch] = data](contracts/admin/TempleTeamPaymentsFactory.sol#L55)\n\t- [incrementEpoch(address(this),totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L140)\n\t\t- [data = FundingData({paymentContract:address(_paymentContract),totalFunding:_totalFunding,epoch:lastPaidEpoch ++})](contracts/admin/TempleTeamPaymentsFactory.sol#L50-L54)\n", - "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L119-L143", - "id": "e7d7cc7383e1682a576694bbc276f3a8cb1f5f6783434f8f5336ea3b0d9bf554", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "increaseShares", - "source_mapping": { - "start": 1987, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "increaseShares(address,uint256)" - } - }, - { - "type": "node", - "name": "claimFor(account)", - "source_mapping": { - "start": 2073, - "length": 17, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 57 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "increaseShares", - "source_mapping": { - "start": 1987, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "increaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", - "source_mapping": { - "start": 3194, - "length": 56, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 91 - ], - "starting_column": 9, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claimFor", - "source_mapping": { - "start": 2718, - "length": 611, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "claimFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "claimFor(account)", - "source_mapping": { - "start": 2073, - "length": 17, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 57 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "increaseShares", - "source_mapping": { - "start": 1987, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "increaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", - "source_mapping": { - "start": 3194, - "length": 56, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 91 - ], - "starting_column": 9, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claimFor", - "source_mapping": { - "start": 2718, - "length": 611, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "claimFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "totalShares += amount", - "source_mapping": { - "start": 2136, - "length": 21, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 60 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "increaseShares", - "source_mapping": { - "start": 1987, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "increaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "totalShares" - } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in LockedOGTemple.lockFor(address,uint256,uint256) (contracts/deprecated/LockedOGTemple.sol#35-53):\n\tExternal calls:\n\t- SafeERC20.safeTransferFrom(OG_TEMPLE,msg.sender,address(this),_amountOGTemple) (contracts/deprecated/LockedOGTemple.sol#46-51)\n\tEvent emitted after the call(s):\n\t- OGTempleLocked(_staker,_amountOGTemple,_lockedUntilTimestamp) (contracts/deprecated/LockedOGTemple.sol#52)\n", + "markdown": "Reentrancy in [LockedOGTemple.lockFor(address,uint256,uint256)](contracts/deprecated/LockedOGTemple.sol#L35-L53):\n\tExternal calls:\n\t- [SafeERC20.safeTransferFrom(OG_TEMPLE,msg.sender,address(this),_amountOGTemple)](contracts/deprecated/LockedOGTemple.sol#L46-L51)\n\tEvent emitted after the call(s):\n\t- [OGTempleLocked(_staker,_amountOGTemple,_lockedUntilTimestamp)](contracts/deprecated/LockedOGTemple.sol#L52)\n", + "first_markdown_element": "contracts/deprecated/LockedOGTemple.sol#L35-L53", + "id": "4230808e1cd7a4f58313604bd2841ce355116b1beb66b33f45e8990f931fb60f", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "recoverToken", + "source_mapping": { + "start": 2543, + "length": 244, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "VaultEarlyWithdraw", + "source_mapping": { + "start": 545, + "length": 2244, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Reentrancy in TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64):\n\tExternal calls:\n\t- claimFor(account) (contracts/core/TreasuryFarmingRevenue.sol#57)\n\t\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tState variables written after the call(s):\n\t- totalShares += amount (contracts/core/TreasuryFarmingRevenue.sol#60)\n", - "markdown": "Reentrancy in [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64):\n\tExternal calls:\n\t- [claimFor(account)](contracts/core/TreasuryFarmingRevenue.sol#L57)\n\t\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tState variables written after the call(s):\n\t- [totalShares += amount](contracts/core/TreasuryFarmingRevenue.sol#L60)\n", - "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L56-L64", - "id": "842e91df89a71525a6459c0d1291885967545da62e3f06975364172343f78737", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token0,to,amount0)", - "source_mapping": { - "start": 6213, - "length": 35, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 131 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token1,to,amount1)", - "source_mapping": { - "start": 6258, - "length": 35, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 132 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "Burn(msg.sender,amount0,amount1,to)", - "source_mapping": { - "start": 6485, - "length": 43, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 137 - ], - "starting_column": 9, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "Sync(reserve0,reserve1)", - "source_mapping": { - "start": 3918, - "length": 29, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 92 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_update(balance0,balance1,_reserve0,_reserve1)", - "source_mapping": { - "start": 6426, - "length": 49, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 136 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "burn", - "source_mapping": { - "start": 5241, - "length": 1294, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "burn(address)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "recoverToken(address,address,uint256)" + } + }, + { + "type": "node", + "name": "IERC20(token).safeTransfer(to,amount)", + "source_mapping": { + "start": 2694, + "length": 38, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [75], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "recoverToken", + "source_mapping": { + "start": 2543, + "length": 244, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "VaultEarlyWithdraw", + "source_mapping": { + "start": 545, + "length": 2244, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "recoverToken(address,address,uint256)" } - ], - "description": "Reentrancy in TempleUniswapV2Pair.burn(address) (contracts/amm/TempleUniswapV2Pair.sol#118-138):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0) (contracts/amm/TempleUniswapV2Pair.sol#131)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- _safeTransfer(_token1,to,amount1) (contracts/amm/TempleUniswapV2Pair.sol#132)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\tEvent emitted after the call(s):\n\t- Burn(msg.sender,amount0,amount1,to) (contracts/amm/TempleUniswapV2Pair.sol#137)\n\t- Sync(reserve0,reserve1) (contracts/amm/TempleUniswapV2Pair.sol#92)\n\t\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#136)\n", - "markdown": "Reentrancy in [TempleUniswapV2Pair.burn(address)](contracts/amm/TempleUniswapV2Pair.sol#L118-L138):\n\tExternal calls:\n\t- [_safeTransfer(_token0,to,amount0)](contracts/amm/TempleUniswapV2Pair.sol#L131)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [_safeTransfer(_token1,to,amount1)](contracts/amm/TempleUniswapV2Pair.sol#L132)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\tEvent emitted after the call(s):\n\t- [Burn(msg.sender,amount0,amount1,to)](contracts/amm/TempleUniswapV2Pair.sol#L137)\n\t- [Sync(reserve0,reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L92)\n\t\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L136)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L118-L138", - "id": "127a57c69604f2ba16f4cd02c712486dff1968238a1c69ead2035920584207c2", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token0,to,amount0Out)", - "source_mapping": { - "start": 7388, - "length": 38, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 153 - ], - "starting_column": 29, - "ending_column": 67 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_safeTransfer(_token1,to,amount1Out)", - "source_mapping": { - "start": 7490, - "length": 38, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 154 - ], - "starting_column": 29, - "ending_column": 67 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)", - "source_mapping": { - "start": 7593, - "length": 76, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 155 - ], - "starting_column": 30, - "ending_column": 106 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Swap(msg.sender,amount0In,amount1In,amount0Out,amount1Out,to)", - "source_mapping": { - "start": 8516, - "length": 71, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 169 - ], - "starting_column": 9, - "ending_column": 80 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "Sync(reserve0,reserve1)", - "source_mapping": { - "start": 3918, - "length": 29, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 92 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_update(balance0,balance1,_reserve0,_reserve1)", - "source_mapping": { - "start": 8457, - "length": 49, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 168 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "swap", - "source_mapping": { - "start": 6644, - "length": 1950, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "swap(uint256,uint256,address,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "TokenRecovered(token,to,amount)", + "source_mapping": { + "start": 2742, + "length": 38, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [76], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "recoverToken", + "source_mapping": { + "start": 2543, + "length": 244, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [73, 74, 75, 76, 77], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "VaultEarlyWithdraw", + "source_mapping": { + "start": 545, + "length": 2244, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "recoverToken(address,address,uint256)" } - ], - "description": "Reentrancy in TempleUniswapV2Pair.swap(uint256,uint256,address,bytes) (contracts/amm/TempleUniswapV2Pair.sol#141-170):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0Out) (contracts/amm/TempleUniswapV2Pair.sol#153)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- _safeTransfer(_token1,to,amount1Out) (contracts/amm/TempleUniswapV2Pair.sol#154)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data) (contracts/amm/TempleUniswapV2Pair.sol#155)\n\tEvent emitted after the call(s):\n\t- Swap(msg.sender,amount0In,amount1In,amount0Out,amount1Out,to) (contracts/amm/TempleUniswapV2Pair.sol#169)\n\t- Sync(reserve0,reserve1) (contracts/amm/TempleUniswapV2Pair.sol#92)\n\t\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#168)\n", - "markdown": "Reentrancy in [TempleUniswapV2Pair.swap(uint256,uint256,address,bytes)](contracts/amm/TempleUniswapV2Pair.sol#L141-L170):\n\tExternal calls:\n\t- [_safeTransfer(_token0,to,amount0Out)](contracts/amm/TempleUniswapV2Pair.sol#L153)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [_safeTransfer(_token1,to,amount1Out)](contracts/amm/TempleUniswapV2Pair.sol#L154)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)](contracts/amm/TempleUniswapV2Pair.sol#L155)\n\tEvent emitted after the call(s):\n\t- [Swap(msg.sender,amount0In,amount1In,amount0Out,amount1Out,to)](contracts/amm/TempleUniswapV2Pair.sol#L169)\n\t- [Sync(reserve0,reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L92)\n\t\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L168)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L141-L170", - "id": "702607b50ee9e5b85f6e9be980d2529af09be332237e0acb690cb814df52cb87", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_burnDToken", - "source_mapping": { - "start": 29999, - "length": 1179, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - }, - { - "type": "node", - "name": "_burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount)", - "source_mapping": { - "start": 30398, - "length": 71, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 688 - ], - "starting_column": 9, - "ending_column": 80 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_burnDToken", - "source_mapping": { - "start": 29999, - "length": 1179, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance)", - "source_mapping": { - "start": 31081, - "length": 90, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 708 - ], - "starting_column": 9, - "ending_column": 99 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_burnDToken", - "source_mapping": { - "start": 29999, - "length": 1179, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in VaultEarlyWithdraw.recoverToken(address,address,uint256) (contracts/core/VaultEarlyWithdraw.sol#73-77):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(to,amount) (contracts/core/VaultEarlyWithdraw.sol#75)\n\tEvent emitted after the call(s):\n\t- TokenRecovered(token,to,amount) (contracts/core/VaultEarlyWithdraw.sol#76)\n", + "markdown": "Reentrancy in [VaultEarlyWithdraw.recoverToken(address,address,uint256)](contracts/core/VaultEarlyWithdraw.sol#L73-L77):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(to,amount)](contracts/core/VaultEarlyWithdraw.sol#L75)\n\tEvent emitted after the call(s):\n\t- [TokenRecovered(token,to,amount)](contracts/core/VaultEarlyWithdraw.sol#L76)\n", + "first_markdown_element": "contracts/core/VaultEarlyWithdraw.sol#L73-L77", + "id": "1c3c00beda0eb4b0661cc31987f0cf4c864705a836f5da0004529d20a3b860b8", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "redeemAmount", + "source_mapping": { + "start": 3080, + "length": 296, + "filename_relative": "contracts/core/Exposure.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Exposure.sol", + "filename_short": "contracts/core/Exposure.sol", + "is_dependency": false, + "lines": [104, 105, 106, 107, 108, 109, 110, 111, 112, 113], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Exposure", + "source_mapping": { + "start": 362, + "length": 3840, + "filename_relative": "contracts/core/Exposure.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Exposure.sol", + "filename_short": "contracts/core/Exposure.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Reentrancy in TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#677-709):\n\tExternal calls:\n\t- _burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount) (contracts/v2/TreasuryReservesVault.sol#688)\n\tEvent emitted after the call(s):\n\t- StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance) (contracts/v2/TreasuryReservesVault.sol#708)\n", - "markdown": "Reentrancy in [TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L677-L709):\n\tExternal calls:\n\t- [_burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount)](contracts/v2/TreasuryReservesVault.sol#L688)\n\tEvent emitted after the call(s):\n\t- [StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance)](contracts/v2/TreasuryReservesVault.sol#L708)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L677-L709", - "id": "39b30f51cb8e0f3bb137afd7388e494f2a117088a846eb999e1fe7c8a4337328", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_doShutdown", - "source_mapping": { - "start": 12280, - "length": 502, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_doShutdown(bytes)" - } - }, - { - "type": "node", - "name": "(daiAvailable,sharesAvailable) = _checkpointDaiBalance()", - "source_mapping": { - "start": 12387, - "length": 74, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 295 - ], - "starting_column": 9, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_doShutdown", - "source_mapping": { - "start": 12280, - "length": 502, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_doShutdown(bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5566, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 142 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5445, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAvailable,daiAvailable)", - "source_mapping": { - "start": 12471, - "length": 45, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 296 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_doShutdown", - "source_mapping": { - "start": 12280, - "length": 502, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_doShutdown(bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "pot.exit(sharesAmount)", - "source_mapping": { - "start": 11597, - "length": 22, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "daiJoin.exit(address(this),daiAmount)", - "source_mapping": { - "start": 11629, - "length": 38, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 280 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiWithdrawn(daiAmount)", + }, + "signature": "redeemAmount(uint256,address)" + } + }, + { + "type": "node", + "name": "liquidator.toTemple(amount,to)", + "source_mapping": { + "start": 3261, + "length": 31, + "filename_relative": "contracts/core/Exposure.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Exposure.sol", + "filename_short": "contracts/core/Exposure.sol", + "is_dependency": false, + "lines": [109], + "starting_column": 13, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "redeemAmount", + "source_mapping": { + "start": 3080, + "length": 296, + "filename_relative": "contracts/core/Exposure.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Exposure.sol", + "filename_short": "contracts/core/Exposure.sol", + "is_dependency": false, + "lines": [104, 105, 106, 107, 108, 109, 110, 111, 112, 113], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Exposure", + "source_mapping": { + "start": 362, + "length": 3840, + "filename_relative": "contracts/core/Exposure.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Exposure.sol", + "filename_short": "contracts/core/Exposure.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "redeemAmount(uint256,address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "Redeem(address(revalToken),msg.sender,to,amount)", + "source_mapping": { + "start": 3313, + "length": 56, + "filename_relative": "contracts/core/Exposure.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Exposure.sol", + "filename_short": "contracts/core/Exposure.sol", + "is_dependency": false, + "lines": [112], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "redeemAmount", + "source_mapping": { + "start": 3080, + "length": 296, + "filename_relative": "contracts/core/Exposure.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Exposure.sol", + "filename_short": "contracts/core/Exposure.sol", + "is_dependency": false, + "lines": [104, 105, 106, 107, 108, 109, 110, 111, 112, 113], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Exposure", + "source_mapping": { + "start": 362, + "length": 3840, + "filename_relative": "contracts/core/Exposure.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Exposure.sol", + "filename_short": "contracts/core/Exposure.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "redeemAmount(uint256,address)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in Exposure.redeemAmount(uint256,address) (contracts/core/Exposure.sol#104-113):\n\tExternal calls:\n\t- liquidator.toTemple(amount,to) (contracts/core/Exposure.sol#109)\n\tEvent emitted after the call(s):\n\t- Redeem(address(revalToken),msg.sender,to,amount) (contracts/core/Exposure.sol#112)\n", + "markdown": "Reentrancy in [Exposure.redeemAmount(uint256,address)](contracts/core/Exposure.sol#L104-L113):\n\tExternal calls:\n\t- [liquidator.toTemple(amount,to)](contracts/core/Exposure.sol#L109)\n\tEvent emitted after the call(s):\n\t- [Redeem(address(revalToken),msg.sender,to,amount)](contracts/core/Exposure.sol#L112)\n", + "first_markdown_element": "contracts/core/Exposure.sol#L104-L113", + "id": "5c348eea3fa61ccb6c1609a61dfbf2ea3d76c031d344e46e4a98a0d17d2298c4", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "withdraw", + "source_mapping": { + "start": 1887, + "length": 562, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "VaultEarlyWithdraw", + "source_mapping": { + "start": 545, + "length": 2244, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdraw(address,uint256)" + } + }, + { + "type": "node", + "name": "IERC20(_vault).safeTransferFrom(msg.sender,owner(),_templeAmount)", + "source_mapping": { + "start": 2179, + "length": 67, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [62], + "starting_column": 9, + "ending_column": 76 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdraw", + "source_mapping": { + "start": 1887, + "length": 562, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "VaultEarlyWithdraw", + "source_mapping": { + "start": 545, + "length": 2244, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdraw(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "templeToken.safeTransfer(msg.sender,_templeAmount)", + "source_mapping": { + "start": 2335, + "length": 51, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [65], + "starting_column": 9, + "ending_column": 60 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdraw", + "source_mapping": { + "start": 1887, + "length": 562, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "VaultEarlyWithdraw", + "source_mapping": { + "start": 545, + "length": 2244, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdraw(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "EarlyWithdraw(msg.sender,_templeAmount)", + "source_mapping": { + "start": 2397, + "length": 45, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [67], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdraw", + "source_mapping": { + "start": 1887, + "length": 562, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "VaultEarlyWithdraw", + "source_mapping": { + "start": 545, + "length": 2244, + "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultEarlyWithdraw.sol", + "filename_short": "contracts/core/VaultEarlyWithdraw.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdraw(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in VaultEarlyWithdraw.withdraw(address,uint256) (contracts/core/VaultEarlyWithdraw.sol#57-68):\n\tExternal calls:\n\t- IERC20(_vault).safeTransferFrom(msg.sender,owner(),_templeAmount) (contracts/core/VaultEarlyWithdraw.sol#62)\n\t- templeToken.safeTransfer(msg.sender,_templeAmount) (contracts/core/VaultEarlyWithdraw.sol#65)\n\tEvent emitted after the call(s):\n\t- EarlyWithdraw(msg.sender,_templeAmount) (contracts/core/VaultEarlyWithdraw.sol#67)\n", + "markdown": "Reentrancy in [VaultEarlyWithdraw.withdraw(address,uint256)](contracts/core/VaultEarlyWithdraw.sol#L57-L68):\n\tExternal calls:\n\t- [IERC20(_vault).safeTransferFrom(msg.sender,owner(),_templeAmount)](contracts/core/VaultEarlyWithdraw.sol#L62)\n\t- [templeToken.safeTransfer(msg.sender,_templeAmount)](contracts/core/VaultEarlyWithdraw.sol#L65)\n\tEvent emitted after the call(s):\n\t- [EarlyWithdraw(msg.sender,_templeAmount)](contracts/core/VaultEarlyWithdraw.sol#L67)\n", + "first_markdown_element": "contracts/core/VaultEarlyWithdraw.sol#L57-L68", + "id": "7a41d062356aa90302a9b5d0829abad146259b6d909dd1702764a586f2839691", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "withdrawFor", + "source_mapping": { + "start": 8002, + "length": 349, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [200, 201, 202, 203, 204, 205, 206, 207, 208, 209], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawFor(address,address,uint256)" + } + }, + { + "type": "node", + "name": "templeExposureToken.redeemAmount(_amount,_to)", + "source_mapping": { + "start": 8256, + "length": 46, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [207], + "starting_column": 9, + "ending_column": 55 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawFor", + "source_mapping": { + "start": 8002, + "length": 349, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [200, 201, 202, 203, 204, 205, 206, 207, 208, 209], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawFor(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "Withdraw(_account,_amount)", + "source_mapping": { + "start": 8312, + "length": 32, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [208], + "starting_column": 9, + "ending_column": 41 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawFor", + "source_mapping": { + "start": 8002, + "length": 349, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [200, 201, 202, 203, 204, 205, 206, 207, 208, 209], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawFor(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in Vault.withdrawFor(address,address,uint256) (contracts/core/Vault.sol#200-209):\n\tExternal calls:\n\t- templeExposureToken.redeemAmount(_amount,_to) (contracts/core/Vault.sol#207)\n\tEvent emitted after the call(s):\n\t- Withdraw(_account,_amount) (contracts/core/Vault.sol#208)\n", + "markdown": "Reentrancy in [Vault.withdrawFor(address,address,uint256)](contracts/core/Vault.sol#L200-L209):\n\tExternal calls:\n\t- [templeExposureToken.redeemAmount(_amount,_to)](contracts/core/Vault.sol#L207)\n\tEvent emitted after the call(s):\n\t- [Withdraw(_account,_amount)](contracts/core/Vault.sol#L208)\n", + "first_markdown_element": "contracts/core/Vault.sol#L200-L209", + "id": "2ff96324c82420cceeabf74c571ad57f47606117de95c992bffac11206a305e2", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "withdrawFor", + "source_mapping": { + "start": 1642, + "length": 627, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "LockedOGTemple", + "source_mapping": { + "start": 213, + "length": 2143, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawFor(address,uint256)" + } + }, + { + "type": "node", + "name": "SafeERC20.safeTransfer(OG_TEMPLE,_staker,entry.BalanceOGTemple)", + "source_mapping": { + "start": 2140, + "length": 65, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [79], + "starting_column": 5, + "ending_column": 70 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawFor", + "source_mapping": { + "start": 1642, + "length": 627, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "LockedOGTemple", + "source_mapping": { + "start": 213, + "length": 2143, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawFor(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "OGTempleWithdraw(_staker,entry.BalanceOGTemple)", + "source_mapping": { + "start": 2211, + "length": 53, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [80], + "starting_column": 5, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawFor", + "source_mapping": { + "start": 1642, + "length": 627, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "LockedOGTemple", + "source_mapping": { + "start": 213, + "length": 2143, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawFor(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in LockedOGTemple.withdrawFor(address,uint256) (contracts/deprecated/LockedOGTemple.sol#62-81):\n\tExternal calls:\n\t- SafeERC20.safeTransfer(OG_TEMPLE,_staker,entry.BalanceOGTemple) (contracts/deprecated/LockedOGTemple.sol#79)\n\tEvent emitted after the call(s):\n\t- OGTempleWithdraw(_staker,entry.BalanceOGTemple) (contracts/deprecated/LockedOGTemple.sol#80)\n", + "markdown": "Reentrancy in [LockedOGTemple.withdrawFor(address,uint256)](contracts/deprecated/LockedOGTemple.sol#L62-L81):\n\tExternal calls:\n\t- [SafeERC20.safeTransfer(OG_TEMPLE,_staker,entry.BalanceOGTemple)](contracts/deprecated/LockedOGTemple.sol#L79)\n\tEvent emitted after the call(s):\n\t- [OGTempleWithdraw(_staker,entry.BalanceOGTemple)](contracts/deprecated/LockedOGTemple.sol#L80)\n", + "first_markdown_element": "contracts/deprecated/LockedOGTemple.sol#L62-L81", + "id": "1121dbdb9cb432f782fa1dcd86b226568d78c9cf57bb807ccdc10360eed217f4", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "withdrawToken", + "source_mapping": { + "start": 1801, + "length": 248, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [58, 59, 60, 61, 62], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawToken(IERC20,uint256)" + } + }, + { + "type": "node", + "name": "SafeERC20.safeTransfer(_token,msg.sender,_amount)", + "source_mapping": { + "start": 1936, + "length": 51, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [60], + "starting_column": 9, + "ending_column": 60 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawToken", + "source_mapping": { + "start": 1801, + "length": 248, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [58, 59, 60, 61, 62], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawToken(IERC20,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "TokenRecovered(address(_token),_amount)", + "source_mapping": { + "start": 1997, + "length": 45, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [61], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawToken", + "source_mapping": { + "start": 1801, + "length": 248, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [58, 59, 60, 61, 62], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsFactory", + "source_mapping": { + "start": 279, + "length": 4673, + "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawToken(IERC20,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TempleTeamPaymentsFactory.withdrawToken(IERC20,uint256) (contracts/admin/TempleTeamPaymentsFactory.sol#58-62):\n\tExternal calls:\n\t- SafeERC20.safeTransfer(_token,msg.sender,_amount) (contracts/admin/TempleTeamPaymentsFactory.sol#60)\n\tEvent emitted after the call(s):\n\t- TokenRecovered(address(_token),_amount) (contracts/admin/TempleTeamPaymentsFactory.sol#61)\n", + "markdown": "Reentrancy in [TempleTeamPaymentsFactory.withdrawToken(IERC20,uint256)](contracts/admin/TempleTeamPaymentsFactory.sol#L58-L62):\n\tExternal calls:\n\t- [SafeERC20.safeTransfer(_token,msg.sender,_amount)](contracts/admin/TempleTeamPaymentsFactory.sol#L60)\n\tEvent emitted after the call(s):\n\t- [TokenRecovered(address(_token),_amount)](contracts/admin/TempleTeamPaymentsFactory.sol#L61)\n", + "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L58-L62", + "id": "953d8875749802563ce4b05772559dd5c6f58bf7e3ad4f1c24b9968cf0977dca", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "withdrawToken", + "source_mapping": { + "start": 1920, + "length": 248, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [59, 60, 61, 62, 63], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsV2", + "source_mapping": { + "start": 346, + "length": 2599, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawToken(IERC20,uint256)" + } + }, + { + "type": "node", + "name": "SafeERC20.safeTransfer(_token,msg.sender,_amount)", + "source_mapping": { + "start": 2055, + "length": 51, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [61], + "starting_column": 9, + "ending_column": 60 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawToken", + "source_mapping": { + "start": 1920, + "length": 248, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [59, 60, 61, 62, 63], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsV2", + "source_mapping": { + "start": 346, + "length": 2599, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawToken(IERC20,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "TokenRecovered(address(_token),_amount)", + "source_mapping": { + "start": 2116, + "length": 45, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [62], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawToken", + "source_mapping": { + "start": 1920, + "length": 248, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [59, 60, 61, 62, 63], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPaymentsV2", + "source_mapping": { + "start": 346, + "length": 2599, + "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPaymentsV2.sol", + "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawToken(IERC20,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TempleTeamPaymentsV2.withdrawToken(IERC20,uint256) (contracts/admin/TempleTeamPaymentsV2.sol#59-63):\n\tExternal calls:\n\t- SafeERC20.safeTransfer(_token,msg.sender,_amount) (contracts/admin/TempleTeamPaymentsV2.sol#61)\n\tEvent emitted after the call(s):\n\t- TokenRecovered(address(_token),_amount) (contracts/admin/TempleTeamPaymentsV2.sol#62)\n", + "markdown": "Reentrancy in [TempleTeamPaymentsV2.withdrawToken(IERC20,uint256)](contracts/admin/TempleTeamPaymentsV2.sol#L59-L63):\n\tExternal calls:\n\t- [SafeERC20.safeTransfer(_token,msg.sender,_amount)](contracts/admin/TempleTeamPaymentsV2.sol#L61)\n\tEvent emitted after the call(s):\n\t- [TokenRecovered(address(_token),_amount)](contracts/admin/TempleTeamPaymentsV2.sol#L62)\n", + "first_markdown_element": "contracts/admin/TempleTeamPaymentsV2.sol#L59-L63", + "id": "1448ab1692e2240869b3f86449f76a8cb3919b98c18052b582afb147fffce7f0", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_burnDToken", + "source_mapping": { + "start": 29999, + "length": 1179, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" + } + }, + { + "type": "node", + "name": "_burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount)", + "source_mapping": { + "start": 30398, + "length": 71, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [688], + "starting_column": 9, + "ending_column": 80 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_burnDToken", + "source_mapping": { + "start": 29999, + "length": 1179, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 11677, - "length": 28, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 281 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAvailable,daiAvailable)", + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance)", + "source_mapping": { + "start": 31081, + "length": 90, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [708], + "starting_column": 9, + "ending_column": 99 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_burnDToken", + "source_mapping": { + "start": 29999, + "length": 1179, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 12471, - "length": 45, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 296 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_doShutdown", - "source_mapping": { - "start": 12280, - "length": 502, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_doShutdown(bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#677-709):\n\tExternal calls:\n\t- _burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount) (contracts/v2/TreasuryReservesVault.sol#688)\n\tEvent emitted after the call(s):\n\t- StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance) (contracts/v2/TreasuryReservesVault.sol#708)\n", + "markdown": "Reentrancy in [TreasuryReservesVault._burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L677-L709):\n\tExternal calls:\n\t- [_burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount)](contracts/v2/TreasuryReservesVault.sol#L688)\n\tEvent emitted after the call(s):\n\t- [StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance)](contracts/v2/TreasuryReservesVault.sol#L708)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L677-L709", + "id": "39b30f51cb8e0f3bb137afd7388e494f2a117088a846eb999e1fe7c8a4337328", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_doShutdown", + "source_mapping": { + "start": 12281, + "length": 502, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_doShutdown(bytes)" + } + }, + { + "type": "node", + "name": "(daiAvailable,sharesAvailable) = _checkpointDaiBalance()", + "source_mapping": { + "start": 12388, + "length": 74, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [295], + "starting_column": 9, + "ending_column": 83 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_doShutdown", + "source_mapping": { + "start": 12281, + "length": 502, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_doShutdown(bytes)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "chi = pot.drip()", + "source_mapping": { + "start": 5567, + "length": 60, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [142], + "starting_column": 9, + "ending_column": 69 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_checkpointChi", + "source_mapping": { + "start": 5446, + "length": 188, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [140, 141, 142, 143], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_checkpointChi()" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_dsrWithdrawal(sharesAvailable,daiAvailable)", + "source_mapping": { + "start": 12472, + "length": 45, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [296], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_doShutdown", + "source_mapping": { + "start": 12281, + "length": 502, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_doShutdown(bytes)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "pot.exit(sharesAmount)", + "source_mapping": { + "start": 11598, + "length": 22, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [279], + "starting_column": 9, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "daiJoin.exit(address(this),daiAmount)", + "source_mapping": { + "start": 11630, + "length": 38, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [280], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "DaiWithdrawn(daiAmount)", + "source_mapping": { + "start": 11678, + "length": 28, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [281], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + }, + { + "type": "node", + "name": "_dsrWithdrawal(sharesAvailable,daiAvailable)", + "source_mapping": { + "start": 12472, + "length": 45, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [296], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_doShutdown", + "source_mapping": { + "start": 12281, + "length": 502, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_doShutdown(bytes)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in DsrBaseStrategy._doShutdown(bytes) (contracts/v2/strategies/DsrBaseStrategy.sol#293-303):\n\tExternal calls:\n\t- (daiAvailable,sharesAvailable) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#295)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\t- _dsrWithdrawal(sharesAvailable,daiAvailable) (contracts/v2/strategies/DsrBaseStrategy.sol#296)\n\t\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#279)\n\t\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\t\t- _dsrWithdrawal(sharesAvailable,daiAvailable) (contracts/v2/strategies/DsrBaseStrategy.sol#296)\n", + "markdown": "Reentrancy in [DsrBaseStrategy._doShutdown(bytes)](contracts/v2/strategies/DsrBaseStrategy.sol#L293-L303):\n\tExternal calls:\n\t- [(daiAvailable,sharesAvailable) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L295)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\t- [_dsrWithdrawal(sharesAvailable,daiAvailable)](contracts/v2/strategies/DsrBaseStrategy.sol#L296)\n\t\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L279)\n\t\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\t\t- [_dsrWithdrawal(sharesAvailable,daiAvailable)](contracts/v2/strategies/DsrBaseStrategy.sol#L296)\n", + "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L293-L303", + "id": "2d01281faf7161866f00d8f2c914cd6f900f84c01032af46a90491363ac26414", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_dsrDeposit", + "source_mapping": { + "start": 8062, + "length": 349, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrDeposit(uint256)" + } + }, + { + "type": "node", + "name": "shares = _rdiv(amount,_checkpointChi())", + "source_mapping": { + "start": 8249, + "length": 48, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [204], + "starting_column": 9, + "ending_column": 57 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrDeposit", + "source_mapping": { + "start": 8062, + "length": 349, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrDeposit(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "chi = pot.drip()", + "source_mapping": { + "start": 5567, + "length": 60, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [142], + "starting_column": 9, + "ending_column": 69 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_checkpointChi", + "source_mapping": { + "start": 5446, + "length": 188, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [140, 141, 142, 143], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_checkpointChi()" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "DaiDeposited(amount)", + "source_mapping": { + "start": 8308, + "length": 25, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [206], + "starting_column": 9, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrDeposit", + "source_mapping": { + "start": 8062, + "length": 349, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrDeposit(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in DsrBaseStrategy._dsrDeposit(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#201-209):\n\tExternal calls:\n\t- shares = _rdiv(amount,_checkpointChi()) (contracts/v2/strategies/DsrBaseStrategy.sol#204)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\tEvent emitted after the call(s):\n\t- DaiDeposited(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#206)\n", + "markdown": "Reentrancy in [DsrBaseStrategy._dsrDeposit(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L201-L209):\n\tExternal calls:\n\t- [shares = _rdiv(amount,_checkpointChi())](contracts/v2/strategies/DsrBaseStrategy.sol#L204)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\tEvent emitted after the call(s):\n\t- [DaiDeposited(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L206)\n", + "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L201-L209", + "id": "d7b6d2a10c4c72fb8ed18e875155e8f19fb9578527302b34acf8ce0824782543", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" + } + }, + { + "type": "node", + "name": "pot.exit(sharesAmount)", + "source_mapping": { + "start": 11598, + "length": 22, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [279], + "starting_column": 9, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "daiJoin.exit(address(this),daiAmount)", + "source_mapping": { + "start": 11630, + "length": 38, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [280], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" } - ], - "description": "Reentrancy in DsrBaseStrategy._doShutdown(bytes) (contracts/v2/strategies/DsrBaseStrategy.sol#293-303):\n\tExternal calls:\n\t- (daiAvailable,sharesAvailable) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#295)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\t- _dsrWithdrawal(sharesAvailable,daiAvailable) (contracts/v2/strategies/DsrBaseStrategy.sol#296)\n\t\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#279)\n\t\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\t\t- _dsrWithdrawal(sharesAvailable,daiAvailable) (contracts/v2/strategies/DsrBaseStrategy.sol#296)\n", - "markdown": "Reentrancy in [DsrBaseStrategy._doShutdown(bytes)](contracts/v2/strategies/DsrBaseStrategy.sol#L293-L303):\n\tExternal calls:\n\t- [(daiAvailable,sharesAvailable) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L295)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\t- [_dsrWithdrawal(sharesAvailable,daiAvailable)](contracts/v2/strategies/DsrBaseStrategy.sol#L296)\n\t\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L279)\n\t\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\t\t- [_dsrWithdrawal(sharesAvailable,daiAvailable)](contracts/v2/strategies/DsrBaseStrategy.sol#L296)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L293-L303", - "id": "2d01281faf7161866f00d8f2c914cd6f900f84c01032af46a90491363ac26414", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8061, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - }, - { - "type": "node", - "name": "shares = _rdiv(amount,_checkpointChi())", - "source_mapping": { - "start": 8248, - "length": 48, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 204 - ], - "starting_column": 9, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8061, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5566, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 142 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5445, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiDeposited(amount)", - "source_mapping": { - "start": 8307, - "length": 25, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 206 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8061, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "DaiWithdrawn(daiAmount)", + "source_mapping": { + "start": 11678, + "length": 28, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [281], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" } - ], - "description": "Reentrancy in DsrBaseStrategy._dsrDeposit(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#201-209):\n\tExternal calls:\n\t- shares = _rdiv(amount,_checkpointChi()) (contracts/v2/strategies/DsrBaseStrategy.sol#204)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\tEvent emitted after the call(s):\n\t- DaiDeposited(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#206)\n", - "markdown": "Reentrancy in [DsrBaseStrategy._dsrDeposit(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L201-L209):\n\tExternal calls:\n\t- [shares = _rdiv(amount,_checkpointChi())](contracts/v2/strategies/DsrBaseStrategy.sol#L204)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\tEvent emitted after the call(s):\n\t- [DaiDeposited(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L206)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L201-L209", - "id": "d7b6d2a10c4c72fb8ed18e875155e8f19fb9578527302b34acf8ce0824782543", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - }, - { - "type": "node", - "name": "pot.exit(sharesAmount)", - "source_mapping": { - "start": 11597, - "length": 22, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "daiJoin.exit(address(this),daiAmount)", - "source_mapping": { - "start": 11629, - "length": 38, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 280 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "DaiWithdrawn(daiAmount)", - "source_mapping": { - "start": 11677, - "length": 28, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 281 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in DsrBaseStrategy._dsrWithdrawal(uint256,uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#278-282):\n\tExternal calls:\n\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#279)\n\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n", + "markdown": "Reentrancy in [DsrBaseStrategy._dsrWithdrawal(uint256,uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L278-L282):\n\tExternal calls:\n\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L279)\n\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n", + "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L278-L282", + "id": "d35e410305415164f2083f99e160a70431f3fb38caf25144473d47103896e96b", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_mintDToken", + "source_mapping": { + "start": 28533, + "length": 1205, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in DsrBaseStrategy._dsrWithdrawal(uint256,uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#278-282):\n\tExternal calls:\n\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#279)\n\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n", - "markdown": "Reentrancy in [DsrBaseStrategy._dsrWithdrawal(uint256,uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L278-L282):\n\tExternal calls:\n\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L279)\n\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L278-L282", - "id": "d35e410305415164f2083f99e160a70431f3fb38caf25144473d47103896e96b", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_mintDToken", - "source_mapping": { - "start": 28533, - "length": 1205, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - }, - { - "type": "node", - "name": "tokenConfig.dToken.mint(strategy,_newDebt)", - "source_mapping": { - "start": 29294, - "length": 43, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 657 - ], - "starting_column": 13, - "ending_column": 56 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_mintDToken", - "source_mapping": { - "start": 28533, - "length": 1205, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance)", + }, + "signature": "_mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" + } + }, + { + "type": "node", + "name": "tokenConfig.dToken.mint(strategy,_newDebt)", + "source_mapping": { + "start": 29294, + "length": 43, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [657], + "starting_column": 13, + "ending_column": 56 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_mintDToken", + "source_mapping": { + "start": 28533, + "length": 1205, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 29641, - "length": 90, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 669 - ], - "starting_column": 9, - "ending_column": 99 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_mintDToken", - "source_mapping": { - "start": 28533, - "length": 1205, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" } - ], - "description": "Reentrancy in TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#638-670):\n\tExternal calls:\n\t- tokenConfig.dToken.mint(strategy,_newDebt) (contracts/v2/TreasuryReservesVault.sol#657)\n\tEvent emitted after the call(s):\n\t- StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance) (contracts/v2/TreasuryReservesVault.sol#669)\n", - "markdown": "Reentrancy in [TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L638-L670):\n\tExternal calls:\n\t- [tokenConfig.dToken.mint(strategy,_newDebt)](contracts/v2/TreasuryReservesVault.sol#L657)\n\tEvent emitted after the call(s):\n\t- [StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance)](contracts/v2/TreasuryReservesVault.sol#L669)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L638-L670", - "id": "d06d6a53d0451e137729438d3e1093db6d5e7f0f78494fe8b2a70bd44b393675", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_withdrawFromBaseStrategy", - "source_mapping": { - "start": 25804, - "length": 2552, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256)" - } - }, - { - "type": "node", - "name": "_withdrawnAmount = _baseStrategy.trvWithdraw(_withdrawFromBaseStrategyAmount)", - "source_mapping": { - "start": 27290, - "length": 85, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 608 - ], - "starting_column": 17, - "ending_column": 102 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_withdrawFromBaseStrategy", - "source_mapping": { - "start": 25804, - "length": 2552, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_burnDToken(_baseStrategyAddr,strategies[_baseStrategyAddr],token,tokenConfig,_withdrawnAmount,tokenConfig.dToken.balanceOf(_baseStrategyAddr))", - "source_mapping": { - "start": 27553, - "length": 319, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 21, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_withdrawFromBaseStrategy", - "source_mapping": { - "start": 25804, - "length": 2552, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount)", - "source_mapping": { - "start": 30398, - "length": 71, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 688 - ], - "starting_column": 9, - "ending_column": 80 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_burnDToken", - "source_mapping": { - "start": 29999, - "length": 1179, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance)", - "source_mapping": { - "start": 31081, - "length": 90, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 708 - ], - "starting_column": 9, - "ending_column": 99 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_burnDToken", - "source_mapping": { - "start": 29999, - "length": 1179, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_burnDToken(_baseStrategyAddr,strategies[_baseStrategyAddr],token,tokenConfig,_withdrawnAmount,tokenConfig.dToken.balanceOf(_baseStrategyAddr))", + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance)", + "source_mapping": { + "start": 29641, + "length": 90, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [669], + "starting_column": 9, + "ending_column": 99 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_mintDToken", + "source_mapping": { + "start": 28533, + "length": 1205, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 27553, - "length": 319, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 21, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_withdrawFromBaseStrategy", - "source_mapping": { - "start": 25804, - "length": 2552, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" } - ], - "description": "Reentrancy in TreasuryReservesVault._withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256) (contracts/v2/TreasuryReservesVault.sol#582-632):\n\tExternal calls:\n\t- _withdrawnAmount = _baseStrategy.trvWithdraw(_withdrawFromBaseStrategyAmount) (contracts/v2/TreasuryReservesVault.sol#608)\n\t- _burnDToken(_baseStrategyAddr,strategies[_baseStrategyAddr],token,tokenConfig,_withdrawnAmount,tokenConfig.dToken.balanceOf(_baseStrategyAddr)) (contracts/v2/TreasuryReservesVault.sol#614-621)\n\t\t- _burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount) (contracts/v2/TreasuryReservesVault.sol#688)\n\tEvent emitted after the call(s):\n\t- StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance) (contracts/v2/TreasuryReservesVault.sol#708)\n\t\t- _burnDToken(_baseStrategyAddr,strategies[_baseStrategyAddr],token,tokenConfig,_withdrawnAmount,tokenConfig.dToken.balanceOf(_baseStrategyAddr)) (contracts/v2/TreasuryReservesVault.sol#614-621)\n", - "markdown": "Reentrancy in [TreasuryReservesVault._withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256)](contracts/v2/TreasuryReservesVault.sol#L582-L632):\n\tExternal calls:\n\t- [_withdrawnAmount = _baseStrategy.trvWithdraw(_withdrawFromBaseStrategyAmount)](contracts/v2/TreasuryReservesVault.sol#L608)\n\t- [_burnDToken(_baseStrategyAddr,strategies[_baseStrategyAddr],token,tokenConfig,_withdrawnAmount,tokenConfig.dToken.balanceOf(_baseStrategyAddr))](contracts/v2/TreasuryReservesVault.sol#L614-L621)\n\t\t- [_burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount)](contracts/v2/TreasuryReservesVault.sol#L688)\n\tEvent emitted after the call(s):\n\t- [StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance)](contracts/v2/TreasuryReservesVault.sol#L708)\n\t\t- [_burnDToken(_baseStrategyAddr,strategies[_baseStrategyAddr],token,tokenConfig,_withdrawnAmount,tokenConfig.dToken.balanceOf(_baseStrategyAddr))](contracts/v2/TreasuryReservesVault.sol#L614-L621)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L582-L632", - "id": "89618dfba3ac7d15e5970daa2e83a543e99a75c999d6a13fbdd7a2d009309297", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 20001, - "length": 2092, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - }, - { - "type": "node", - "name": "_tokenVault.borrowProtocolToken(protocolTokenAmount,address(this))", - "source_mapping": { - "start": 20777, - "length": 67, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 483 - ], - "starting_column": 9, - "ending_column": 76 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 20001, - "length": 2092, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_tokenVault.borrowQuoteToken(quoteTokenAmount,address(this))", - "source_mapping": { - "start": 20854, - "length": 61, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 484 - ], - "starting_column": 9, - "ending_column": 70 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 20001, - "length": 2092, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "protocolToken.safeIncreaseAllowance(address(balancerVault),protocolTokenAmount)", - "source_mapping": { - "start": 20995, - "length": 80, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 488 - ], - "starting_column": 13, - "ending_column": 93 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 20001, - "length": 2092, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.safeApprove(address(balancerVault),0)", - "source_mapping": { - "start": 21254, - "length": 49, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 491 - ], - "starting_column": 17, - "ending_column": 66 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 20001, - "length": 2092, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.safeIncreaseAllowance(address(balancerVault),quoteTokenAmount)", - "source_mapping": { - "start": 21321, - "length": 74, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 492 - ], - "starting_column": 17, - "ending_column": 91 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 20001, - "length": 2092, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "balancerVault.joinPool(balancerPoolId,address(this),address(this),request)", - "source_mapping": { - "start": 21538, - "length": 77, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 499 - ], - "starting_column": 13, - "ending_column": 90 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 20001, - "length": 2092, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "LiquidityAdded(quoteTokenAmount,protocolTokenAmount,bptTokensStaked)", - "source_mapping": { - "start": 21814, - "length": 75, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 506 - ], - "starting_column": 9, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 20001, - "length": 2092, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256) (contracts/v2/TreasuryReservesVault.sol#638-670):\n\tExternal calls:\n\t- tokenConfig.dToken.mint(strategy,_newDebt) (contracts/v2/TreasuryReservesVault.sol#657)\n\tEvent emitted after the call(s):\n\t- StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance) (contracts/v2/TreasuryReservesVault.sol#669)\n", + "markdown": "Reentrancy in [TreasuryReservesVault._mintDToken(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)](contracts/v2/TreasuryReservesVault.sol#L638-L670):\n\tExternal calls:\n\t- [tokenConfig.dToken.mint(strategy,_newDebt)](contracts/v2/TreasuryReservesVault.sol#L657)\n\tEvent emitted after the call(s):\n\t- [StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance)](contracts/v2/TreasuryReservesVault.sol#L669)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L638-L670", + "id": "d06d6a53d0451e137729438d3e1093db6d5e7f0f78494fe8b2a70bd44b393675", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_withdrawFromBaseStrategy", + "source_mapping": { + "start": 25804, + "length": 2552, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in Ramos.addLiquidity(IBalancerVault.JoinPoolRequest) (contracts/amo/Ramos.sol#464-513):\n\tExternal calls:\n\t- _tokenVault.borrowProtocolToken(protocolTokenAmount,address(this)) (contracts/amo/Ramos.sol#483)\n\t- _tokenVault.borrowQuoteToken(quoteTokenAmount,address(this)) (contracts/amo/Ramos.sol#484)\n\t- protocolToken.safeIncreaseAllowance(address(balancerVault),protocolTokenAmount) (contracts/amo/Ramos.sol#488)\n\t- quoteToken.safeApprove(address(balancerVault),0) (contracts/amo/Ramos.sol#491)\n\t- quoteToken.safeIncreaseAllowance(address(balancerVault),quoteTokenAmount) (contracts/amo/Ramos.sol#492)\n\t- balancerVault.joinPool(balancerPoolId,address(this),address(this),request) (contracts/amo/Ramos.sol#499)\n\tEvent emitted after the call(s):\n\t- LiquidityAdded(quoteTokenAmount,protocolTokenAmount,bptTokensStaked) (contracts/amo/Ramos.sol#506)\n", - "markdown": "Reentrancy in [Ramos.addLiquidity(IBalancerVault.JoinPoolRequest)](contracts/amo/Ramos.sol#L464-L513):\n\tExternal calls:\n\t- [_tokenVault.borrowProtocolToken(protocolTokenAmount,address(this))](contracts/amo/Ramos.sol#L483)\n\t- [_tokenVault.borrowQuoteToken(quoteTokenAmount,address(this))](contracts/amo/Ramos.sol#L484)\n\t- [protocolToken.safeIncreaseAllowance(address(balancerVault),protocolTokenAmount)](contracts/amo/Ramos.sol#L488)\n\t- [quoteToken.safeApprove(address(balancerVault),0)](contracts/amo/Ramos.sol#L491)\n\t- [quoteToken.safeIncreaseAllowance(address(balancerVault),quoteTokenAmount)](contracts/amo/Ramos.sol#L492)\n\t- [balancerVault.joinPool(balancerPoolId,address(this),address(this),request)](contracts/amo/Ramos.sol#L499)\n\tEvent emitted after the call(s):\n\t- [LiquidityAdded(quoteTokenAmount,protocolTokenAmount,bptTokensStaked)](contracts/amo/Ramos.sol#L506)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L464-L513", - "id": "15647cc5365c69815f9cf055275a3e256df8e9495b6e93d5e1a813c3a4db8bfa", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 7071, - "length": 365, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - }, - { - "type": "node", - "name": "(quoteTokenAmount,protocolTokenAmount,bptTokensStaked) = ramos.addLiquidity(_requestData)", + }, + "signature": "_withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256)" + } + }, + { + "type": "node", + "name": "_withdrawnAmount = _baseStrategy.trvWithdraw(_withdrawFromBaseStrategyAmount)", + "source_mapping": { + "start": 27290, + "length": 85, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [608], + "starting_column": 17, + "ending_column": 102 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_withdrawFromBaseStrategy", + "source_mapping": { + "start": 25804, + "length": 2552, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 7185, - "length": 161, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 182, - 183, - 184, - 185, - 186 - ], - "starting_column": 9, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 7071, - "length": 365, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "AddLiquidity(quoteTokenAmount,protocolTokenAmount,bptTokensStaked)", + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "_burnDToken(_baseStrategyAddr,strategies[_baseStrategyAddr],token,tokenConfig,_withdrawnAmount,tokenConfig.dToken.balanceOf(_baseStrategyAddr))", + "source_mapping": { + "start": 27553, + "length": 319, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [614, 615, 616, 617, 618, 619, 620, 621], + "starting_column": 21, + "ending_column": 22 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_withdrawFromBaseStrategy", + "source_mapping": { + "start": 25804, + "length": 2552, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 7356, - "length": 73, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 187 - ], - "starting_column": 9, - "ending_column": 82 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "addLiquidity", - "source_mapping": { - "start": 7071, - "length": 365, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256)" } - ], - "description": "Reentrancy in RamosStrategy.addLiquidity(IBalancerVault.JoinPoolRequest) (contracts/v2/strategies/RamosStrategy.sol#181-188):\n\tExternal calls:\n\t- (quoteTokenAmount,protocolTokenAmount,bptTokensStaked) = ramos.addLiquidity(_requestData) (contracts/v2/strategies/RamosStrategy.sol#182-186)\n\tEvent emitted after the call(s):\n\t- AddLiquidity(quoteTokenAmount,protocolTokenAmount,bptTokensStaked) (contracts/v2/strategies/RamosStrategy.sol#187)\n", - "markdown": "Reentrancy in [RamosStrategy.addLiquidity(IBalancerVault.JoinPoolRequest)](contracts/v2/strategies/RamosStrategy.sol#L181-L188):\n\tExternal calls:\n\t- [(quoteTokenAmount,protocolTokenAmount,bptTokensStaked) = ramos.addLiquidity(_requestData)](contracts/v2/strategies/RamosStrategy.sol#L182-L186)\n\tEvent emitted after the call(s):\n\t- [AddLiquidity(quoteTokenAmount,protocolTokenAmount,bptTokensStaked)](contracts/v2/strategies/RamosStrategy.sol#L187)\n", - "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L181-L188", - "id": "86c6739a14ef579509f4e0190b6310b585123eb008deed594e5fdc44ec40eefe", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "borrow", + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "_burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount)", + "source_mapping": { + "start": 30398, + "length": 71, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [688], + "starting_column": 9, + "ending_column": 80 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_burnDToken", + "source_mapping": { + "start": 29999, + "length": 1179, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 3212, - "length": 319, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrow(IERC20,uint256)" - } - }, - { - "type": "node", - "name": "circuitBreakerProxy.preCheck(address(token),msg.sender,amount)", + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance)", + "source_mapping": { + "start": 31081, + "length": 90, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [708], + "starting_column": 9, + "ending_column": 99 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_burnDToken", + "source_mapping": { + "start": 29999, + "length": 1179, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 3296, - "length": 112, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrow", - "source_mapping": { - "start": 3212, - "length": 319, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrow(IERC20,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Borrow(address(token),amount)", + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_burnDToken(address,ITreasuryReservesVault.StrategyConfig,IERC20,ITreasuryReservesVault.BorrowTokenConfig,uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + }, + { + "type": "node", + "name": "_burnDToken(_baseStrategyAddr,strategies[_baseStrategyAddr],token,tokenConfig,_withdrawnAmount,tokenConfig.dToken.balanceOf(_baseStrategyAddr))", + "source_mapping": { + "start": 27553, + "length": 319, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [614, 615, 616, 617, 618, 619, 620, 621], + "starting_column": 21, + "ending_column": 22 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_withdrawFromBaseStrategy", + "source_mapping": { + "start": 25804, + "length": 2552, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 3418, - "length": 35, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 94 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrow", - "source_mapping": { - "start": 3212, - "length": 319, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrow(IERC20,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TreasuryReservesVault._withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256) (contracts/v2/TreasuryReservesVault.sol#582-632):\n\tExternal calls:\n\t- _withdrawnAmount = _baseStrategy.trvWithdraw(_withdrawFromBaseStrategyAmount) (contracts/v2/TreasuryReservesVault.sol#608)\n\t- _burnDToken(_baseStrategyAddr,strategies[_baseStrategyAddr],token,tokenConfig,_withdrawnAmount,tokenConfig.dToken.balanceOf(_baseStrategyAddr)) (contracts/v2/TreasuryReservesVault.sol#614-621)\n\t\t- _burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount) (contracts/v2/TreasuryReservesVault.sol#688)\n\tEvent emitted after the call(s):\n\t- StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance) (contracts/v2/TreasuryReservesVault.sol#708)\n\t\t- _burnDToken(_baseStrategyAddr,strategies[_baseStrategyAddr],token,tokenConfig,_withdrawnAmount,tokenConfig.dToken.balanceOf(_baseStrategyAddr)) (contracts/v2/TreasuryReservesVault.sol#614-621)\n", + "markdown": "Reentrancy in [TreasuryReservesVault._withdrawFromBaseStrategy(address,IERC20,ITreasuryReservesVault.BorrowTokenConfig,address,uint256)](contracts/v2/TreasuryReservesVault.sol#L582-L632):\n\tExternal calls:\n\t- [_withdrawnAmount = _baseStrategy.trvWithdraw(_withdrawFromBaseStrategyAmount)](contracts/v2/TreasuryReservesVault.sol#L608)\n\t- [_burnDToken(_baseStrategyAddr,strategies[_baseStrategyAddr],token,tokenConfig,_withdrawnAmount,tokenConfig.dToken.balanceOf(_baseStrategyAddr))](contracts/v2/TreasuryReservesVault.sol#L614-L621)\n\t\t- [_burnedAmount = tokenConfig.dToken.burn(strategy,toBurnAmount)](contracts/v2/TreasuryReservesVault.sol#L688)\n\tEvent emitted after the call(s):\n\t- [StrategyCreditAndDebtBalance(strategy,address(token),_creditBalance,dTokenBalance)](contracts/v2/TreasuryReservesVault.sol#L708)\n\t\t- [_burnDToken(_baseStrategyAddr,strategies[_baseStrategyAddr],token,tokenConfig,_withdrawnAmount,tokenConfig.dToken.balanceOf(_baseStrategyAddr))](contracts/v2/TreasuryReservesVault.sol#L614-L621)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L582-L632", + "id": "89618dfba3ac7d15e5970daa2e83a543e99a75c999d6a13fbdd7a2d009309297", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 19877, + "length": 2088, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" + } + }, + { + "type": "node", + "name": "_tokenVault.borrowProtocolToken(protocolTokenAmount,address(this))", + "source_mapping": { + "start": 20653, + "length": 67, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [481], + "starting_column": 9, + "ending_column": 76 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 19877, + "length": 2088, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "_tokenVault.borrowQuoteToken(quoteTokenAmount,address(this))", + "source_mapping": { + "start": 20730, + "length": 61, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [482], + "starting_column": 9, + "ending_column": 70 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 19877, + "length": 2088, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "protocolToken.safeIncreaseAllowance(address(balancerVault),protocolTokenAmount)", + "source_mapping": { + "start": 20871, + "length": 80, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [486], + "starting_column": 13, + "ending_column": 93 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 19877, + "length": 2088, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "quoteToken.approve(address(balancerVault),0)", + "source_mapping": { + "start": 21130, + "length": 45, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [489], + "starting_column": 17, + "ending_column": 62 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 19877, + "length": 2088, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "quoteToken.safeIncreaseAllowance(address(balancerVault),quoteTokenAmount)", + "source_mapping": { + "start": 21193, + "length": 74, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [490], + "starting_column": 17, + "ending_column": 91 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 19877, + "length": 2088, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "balancerVault.joinPool(balancerPoolId,address(this),address(this),request)", + "source_mapping": { + "start": 21410, + "length": 77, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [497], + "starting_column": 13, + "ending_column": 90 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 19877, + "length": 2088, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "LiquidityAdded(quoteTokenAmount,protocolTokenAmount,bptTokensStaked)", + "source_mapping": { + "start": 21686, + "length": 75, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [504], + "starting_column": 9, + "ending_column": 84 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 19877, + "length": 2088, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in Ramos.addLiquidity(IBalancerVault.JoinPoolRequest) (contracts/amo/Ramos.sol#462-511):\n\tExternal calls:\n\t- _tokenVault.borrowProtocolToken(protocolTokenAmount,address(this)) (contracts/amo/Ramos.sol#481)\n\t- _tokenVault.borrowQuoteToken(quoteTokenAmount,address(this)) (contracts/amo/Ramos.sol#482)\n\t- protocolToken.safeIncreaseAllowance(address(balancerVault),protocolTokenAmount) (contracts/amo/Ramos.sol#486)\n\t- quoteToken.approve(address(balancerVault),0) (contracts/amo/Ramos.sol#489)\n\t- quoteToken.safeIncreaseAllowance(address(balancerVault),quoteTokenAmount) (contracts/amo/Ramos.sol#490)\n\t- balancerVault.joinPool(balancerPoolId,address(this),address(this),request) (contracts/amo/Ramos.sol#497)\n\tEvent emitted after the call(s):\n\t- LiquidityAdded(quoteTokenAmount,protocolTokenAmount,bptTokensStaked) (contracts/amo/Ramos.sol#504)\n", + "markdown": "Reentrancy in [Ramos.addLiquidity(IBalancerVault.JoinPoolRequest)](contracts/amo/Ramos.sol#L462-L511):\n\tExternal calls:\n\t- [_tokenVault.borrowProtocolToken(protocolTokenAmount,address(this))](contracts/amo/Ramos.sol#L481)\n\t- [_tokenVault.borrowQuoteToken(quoteTokenAmount,address(this))](contracts/amo/Ramos.sol#L482)\n\t- [protocolToken.safeIncreaseAllowance(address(balancerVault),protocolTokenAmount)](contracts/amo/Ramos.sol#L486)\n\t- [quoteToken.approve(address(balancerVault),0)](contracts/amo/Ramos.sol#L489)\n\t- [quoteToken.safeIncreaseAllowance(address(balancerVault),quoteTokenAmount)](contracts/amo/Ramos.sol#L490)\n\t- [balancerVault.joinPool(balancerPoolId,address(this),address(this),request)](contracts/amo/Ramos.sol#L497)\n\tEvent emitted after the call(s):\n\t- [LiquidityAdded(quoteTokenAmount,protocolTokenAmount,bptTokensStaked)](contracts/amo/Ramos.sol#L504)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L462-L511", + "id": "091d4b185888c9ea40fc206a3a47abe3a16a55f493010202d1ea982502231085", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 7071, + "length": 365, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [181, 182, 183, 184, 185, 186, 187, 188], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" + } + }, + { + "type": "node", + "name": "(quoteTokenAmount,protocolTokenAmount,bptTokensStaked) = ramos.addLiquidity(_requestData)", + "source_mapping": { + "start": 7185, + "length": 161, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [182, 183, 184, 185, 186], + "starting_column": 9, + "ending_column": 45 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 7071, + "length": 365, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [181, 182, 183, 184, 185, 186, 187, 188], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "AddLiquidity(quoteTokenAmount,protocolTokenAmount,bptTokensStaked)", + "source_mapping": { + "start": 7356, + "length": 73, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [187], + "starting_column": 9, + "ending_column": 82 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addLiquidity", + "source_mapping": { + "start": 7071, + "length": 365, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [181, 182, 183, 184, 185, 186, 187, 188], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "addLiquidity(IBalancerVault.JoinPoolRequest)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in RamosStrategy.addLiquidity(IBalancerVault.JoinPoolRequest) (contracts/v2/strategies/RamosStrategy.sol#181-188):\n\tExternal calls:\n\t- (quoteTokenAmount,protocolTokenAmount,bptTokensStaked) = ramos.addLiquidity(_requestData) (contracts/v2/strategies/RamosStrategy.sol#182-186)\n\tEvent emitted after the call(s):\n\t- AddLiquidity(quoteTokenAmount,protocolTokenAmount,bptTokensStaked) (contracts/v2/strategies/RamosStrategy.sol#187)\n", + "markdown": "Reentrancy in [RamosStrategy.addLiquidity(IBalancerVault.JoinPoolRequest)](contracts/v2/strategies/RamosStrategy.sol#L181-L188):\n\tExternal calls:\n\t- [(quoteTokenAmount,protocolTokenAmount,bptTokensStaked) = ramos.addLiquidity(_requestData)](contracts/v2/strategies/RamosStrategy.sol#L182-L186)\n\tEvent emitted after the call(s):\n\t- [AddLiquidity(quoteTokenAmount,protocolTokenAmount,bptTokensStaked)](contracts/v2/strategies/RamosStrategy.sol#L187)\n", + "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L181-L188", + "id": "86c6739a14ef579509f4e0190b6310b585123eb008deed594e5fdc44ec40eefe", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "borrow", + "source_mapping": { + "start": 3212, + "length": 319, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [88, 89, 90, 91, 92, 93, 94, 95, 96], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrow(IERC20,uint256)" + } + }, + { + "type": "node", + "name": "circuitBreakerProxy.preCheck(address(token),msg.sender,amount)", + "source_mapping": { + "start": 3296, + "length": 112, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [89, 90, 91, 92, 93], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrow", + "source_mapping": { + "start": 3212, + "length": 319, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [88, 89, 90, 91, 92, 93, 94, 95, 96], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrow(IERC20,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "Borrow(address(token),amount)", + "source_mapping": { + "start": 3418, + "length": 35, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [94], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrow", + "source_mapping": { + "start": 3212, + "length": 319, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [88, 89, 90, 91, 92, 93, 94, 95, 96], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrow(IERC20,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in GnosisStrategy.borrow(IERC20,uint256) (contracts/v2/strategies/GnosisStrategy.sol#88-96):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(token),msg.sender,amount) (contracts/v2/strategies/GnosisStrategy.sol#89-93)\n\tEvent emitted after the call(s):\n\t- Borrow(address(token),amount) (contracts/v2/strategies/GnosisStrategy.sol#94)\n", + "markdown": "Reentrancy in [GnosisStrategy.borrow(IERC20,uint256)](contracts/v2/strategies/GnosisStrategy.sol#L88-L96):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(token),msg.sender,amount)](contracts/v2/strategies/GnosisStrategy.sol#L89-L93)\n\tEvent emitted after the call(s):\n\t- [Borrow(address(token),amount)](contracts/v2/strategies/GnosisStrategy.sol#L94)\n", + "first_markdown_element": "contracts/v2/strategies/GnosisStrategy.sol#L88-L96", + "id": "816d5794942352b4b9c381b210cb4b35ac9c43889f1c7eaa1b7e32f3c1f8ab33", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "borrowAndDeposit", + "source_mapping": { + "start": 7810, + "length": 246, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [195, 196, 197, 198, 199], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowAndDeposit(uint256)" + } + }, + { + "type": "node", + "name": "treasuryReservesVault.borrow(daiToken,amount,address(this))", + "source_mapping": { + "start": 7959, + "length": 61, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [197], + "starting_column": 9, + "ending_column": 70 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowAndDeposit", + "source_mapping": { + "start": 7810, + "length": 246, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [195, 196, 197, 198, 199], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowAndDeposit(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "_dsrDeposit(amount)", + "source_mapping": { + "start": 8030, + "length": 19, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [198], + "starting_column": 9, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowAndDeposit", + "source_mapping": { + "start": 7810, + "length": 246, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [195, 196, 197, 198, 199], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowAndDeposit(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "daiJoin.join(address(this),amount)", + "source_mapping": { + "start": 8343, + "length": 35, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [207], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrDeposit", + "source_mapping": { + "start": 8062, + "length": 349, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrDeposit(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "chi = pot.drip()", + "source_mapping": { + "start": 5567, + "length": 60, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [142], + "starting_column": 9, + "ending_column": 69 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_checkpointChi", + "source_mapping": { + "start": 5446, + "length": 188, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [140, 141, 142, 143], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_checkpointChi()" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "pot.join(shares)", + "source_mapping": { + "start": 8388, + "length": 16, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [208], + "starting_column": 9, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrDeposit", + "source_mapping": { + "start": 8062, + "length": 349, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrDeposit(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "DaiDeposited(amount)", + "source_mapping": { + "start": 8308, + "length": 25, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [206], + "starting_column": 9, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrDeposit", + "source_mapping": { + "start": 8062, + "length": 349, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrDeposit(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + }, + { + "type": "node", + "name": "_dsrDeposit(amount)", + "source_mapping": { + "start": 8030, + "length": 19, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [198], + "starting_column": 9, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowAndDeposit", + "source_mapping": { + "start": 7810, + "length": 246, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [195, 196, 197, 198, 199], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowAndDeposit(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in DsrBaseStrategy.borrowAndDeposit(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#195-199):\n\tExternal calls:\n\t- treasuryReservesVault.borrow(daiToken,amount,address(this)) (contracts/v2/strategies/DsrBaseStrategy.sol#197)\n\t- _dsrDeposit(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#198)\n\t\t- daiJoin.join(address(this),amount) (contracts/v2/strategies/DsrBaseStrategy.sol#207)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\t\t- pot.join(shares) (contracts/v2/strategies/DsrBaseStrategy.sol#208)\n\tEvent emitted after the call(s):\n\t- DaiDeposited(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#206)\n\t\t- _dsrDeposit(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#198)\n", + "markdown": "Reentrancy in [DsrBaseStrategy.borrowAndDeposit(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L195-L199):\n\tExternal calls:\n\t- [treasuryReservesVault.borrow(daiToken,amount,address(this))](contracts/v2/strategies/DsrBaseStrategy.sol#L197)\n\t- [_dsrDeposit(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L198)\n\t\t- [daiJoin.join(address(this),amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L207)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\t\t- [pot.join(shares)](contracts/v2/strategies/DsrBaseStrategy.sol#L208)\n\tEvent emitted after the call(s):\n\t- [DaiDeposited(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L206)\n\t\t- [_dsrDeposit(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L198)\n", + "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L195-L199", + "id": "6f150fd09fac2796a24b461a93dcda378e0b73d3d94cc538625af3f9b9d80747", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "borrowAndDeposit", + "source_mapping": { + "start": 2046, + "length": 229, + "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "is_dependency": false, + "lines": [61, 62, 63, 64, 65], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTokenBaseStrategy", + "source_mapping": { + "start": 689, + "length": 4427, + "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowAndDeposit(uint256)" + } + }, + { + "type": "node", + "name": "treasuryReservesVault.borrow(templeToken,amount,address(this))", + "source_mapping": { + "start": 2135, + "length": 64, + "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "is_dependency": false, + "lines": [62], + "starting_column": 9, + "ending_column": 73 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowAndDeposit", + "source_mapping": { + "start": 2046, + "length": 229, + "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "is_dependency": false, + "lines": [61, 62, 63, 64, 65], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTokenBaseStrategy", + "source_mapping": { + "start": 689, + "length": 4427, + "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowAndDeposit(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "TempleBurned(amount)", + "source_mapping": { + "start": 2209, + "length": 25, + "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "is_dependency": false, + "lines": [63], + "starting_column": 9, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowAndDeposit", + "source_mapping": { + "start": 2046, + "length": 229, + "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "is_dependency": false, + "lines": [61, 62, 63, 64, 65], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTokenBaseStrategy", + "source_mapping": { + "start": 689, + "length": 4427, + "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowAndDeposit(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TempleTokenBaseStrategy.borrowAndDeposit(uint256) (contracts/v2/strategies/TempleTokenBaseStrategy.sol#61-65):\n\tExternal calls:\n\t- treasuryReservesVault.borrow(templeToken,amount,address(this)) (contracts/v2/strategies/TempleTokenBaseStrategy.sol#62)\n\tEvent emitted after the call(s):\n\t- TempleBurned(amount) (contracts/v2/strategies/TempleTokenBaseStrategy.sol#63)\n", + "markdown": "Reentrancy in [TempleTokenBaseStrategy.borrowAndDeposit(uint256)](contracts/v2/strategies/TempleTokenBaseStrategy.sol#L61-L65):\n\tExternal calls:\n\t- [treasuryReservesVault.borrow(templeToken,amount,address(this))](contracts/v2/strategies/TempleTokenBaseStrategy.sol#L62)\n\tEvent emitted after the call(s):\n\t- [TempleBurned(amount)](contracts/v2/strategies/TempleTokenBaseStrategy.sol#L63)\n", + "first_markdown_element": "contracts/v2/strategies/TempleTokenBaseStrategy.sol#L61-L65", + "id": "a4b7ebab2add03874fc7d7e0fb2176bb3cce4461f7bee4c56c5e3938077ba4b2", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "borrowMax", + "source_mapping": { + "start": 3668, + "length": 489, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowMax(IERC20)" + } + }, + { + "type": "node", + "name": "circuitBreakerProxy.preCheck(address(token),msg.sender,borrowedAmount)", + "source_mapping": { + "start": 3915, + "length": 120, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [105, 106, 107, 108, 109], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowMax", + "source_mapping": { + "start": 3668, + "length": 489, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowMax(IERC20)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "Borrow(address(token),borrowedAmount)", + "source_mapping": { + "start": 4045, + "length": 43, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [110], + "starting_column": 9, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowMax", + "source_mapping": { + "start": 3668, + "length": 489, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowMax(IERC20)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in GnosisStrategy.borrowMax(IERC20) (contracts/v2/strategies/GnosisStrategy.sol#102-112):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(token),msg.sender,borrowedAmount) (contracts/v2/strategies/GnosisStrategy.sol#105-109)\n\tEvent emitted after the call(s):\n\t- Borrow(address(token),borrowedAmount) (contracts/v2/strategies/GnosisStrategy.sol#110)\n", + "markdown": "Reentrancy in [GnosisStrategy.borrowMax(IERC20)](contracts/v2/strategies/GnosisStrategy.sol#L102-L112):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(token),msg.sender,borrowedAmount)](contracts/v2/strategies/GnosisStrategy.sol#L105-L109)\n\tEvent emitted after the call(s):\n\t- [Borrow(address(token),borrowedAmount)](contracts/v2/strategies/GnosisStrategy.sol#L110)\n", + "first_markdown_element": "contracts/v2/strategies/GnosisStrategy.sol#L102-L112", + "id": "c3beb3c3be57476ae61c0a7cfb0301faed9288220416d314839649d2de9f7b5e", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "borrowProtocolToken", + "source_mapping": { + "start": 3626, + "length": 353, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [91, 92, 93, 94, 95, 96, 97, 98, 99], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowProtocolToken(uint256,address)" + } + }, + { + "type": "node", + "name": "circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)", + "source_mapping": { + "start": 3728, + "length": 118, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [92, 93, 94, 95, 96], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowProtocolToken", + "source_mapping": { + "start": 3626, + "length": 353, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [91, 92, 93, 94, 95, 96, 97, 98, 99], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowProtocolToken(uint256,address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "BorrowToken(address(templeToken),amount)", + "source_mapping": { + "start": 3856, + "length": 46, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [97], + "starting_column": 9, + "ending_column": 55 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowProtocolToken", + "source_mapping": { + "start": 3626, + "length": 353, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [91, 92, 93, 94, 95, 96, 97, 98, 99], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowProtocolToken(uint256,address)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in RamosStrategy.borrowProtocolToken(uint256,address) (contracts/v2/strategies/RamosStrategy.sol#91-99):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount) (contracts/v2/strategies/RamosStrategy.sol#92-96)\n\tEvent emitted after the call(s):\n\t- BorrowToken(address(templeToken),amount) (contracts/v2/strategies/RamosStrategy.sol#97)\n", + "markdown": "Reentrancy in [RamosStrategy.borrowProtocolToken(uint256,address)](contracts/v2/strategies/RamosStrategy.sol#L91-L99):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)](contracts/v2/strategies/RamosStrategy.sol#L92-L96)\n\tEvent emitted after the call(s):\n\t- [BorrowToken(address(templeToken),amount)](contracts/v2/strategies/RamosStrategy.sol#L97)\n", + "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L91-L99", + "id": "e0ba9fad7b97dfcfdfbb8b5dcf413149d4e3c15549b5560fb8aacdf2167f9e31", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "borrowQuoteToken", + "source_mapping": { + "start": 4172, + "length": 347, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [106, 107, 108, 109, 110, 111, 112, 113, 114], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowQuoteToken(uint256,address)" + } + }, + { + "type": "node", + "name": "circuitBreakerProxy.preCheck(address(quoteToken),msg.sender,amount)", + "source_mapping": { + "start": 4271, + "length": 117, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [107, 108, 109, 110, 111], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowQuoteToken", + "source_mapping": { + "start": 4172, + "length": 347, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [106, 107, 108, 109, 110, 111, 112, 113, 114], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowQuoteToken(uint256,address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "BorrowToken(address(quoteToken),amount)", + "source_mapping": { + "start": 4398, + "length": 45, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [112], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "borrowQuoteToken", + "source_mapping": { + "start": 4172, + "length": 347, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [106, 107, 108, 109, 110, 111, 112, 113, 114], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "borrowQuoteToken(uint256,address)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in RamosStrategy.borrowQuoteToken(uint256,address) (contracts/v2/strategies/RamosStrategy.sol#106-114):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(quoteToken),msg.sender,amount) (contracts/v2/strategies/RamosStrategy.sol#107-111)\n\tEvent emitted after the call(s):\n\t- BorrowToken(address(quoteToken),amount) (contracts/v2/strategies/RamosStrategy.sol#112)\n", + "markdown": "Reentrancy in [RamosStrategy.borrowQuoteToken(uint256,address)](contracts/v2/strategies/RamosStrategy.sol#L106-L114):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(quoteToken),msg.sender,amount)](contracts/v2/strategies/RamosStrategy.sol#L107-L111)\n\tEvent emitted after the call(s):\n\t- [BorrowToken(address(quoteToken),amount)](contracts/v2/strategies/RamosStrategy.sol#L112)\n", + "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L106-L114", + "id": "bbc7a06e8819c324c8e6cacd486325e56ef60f1d5a3b26d061c95866855e9804", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "checkpointAssetBalances", + "source_mapping": { + "start": 6889, + "length": 403, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "checkpointAssetBalances()" + } + }, + { + "type": "node", + "name": "(daiBalance) = _checkpointDaiBalance()", + "source_mapping": { + "start": 7012, + "length": 48, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [176], + "starting_column": 9, + "ending_column": 57 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "checkpointAssetBalances", + "source_mapping": { + "start": 6889, + "length": 403, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "checkpointAssetBalances()" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "chi = pot.drip()", + "source_mapping": { + "start": 5567, + "length": 60, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [142], + "starting_column": 9, + "ending_column": 69 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_checkpointChi", + "source_mapping": { + "start": 5446, + "length": 188, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [140, 141, 142, 143], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_checkpointChi()" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "AssetBalancesCheckpoint(assetBalances)", + "source_mapping": { + "start": 7242, + "length": 43, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [182], + "starting_column": 9, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "checkpointAssetBalances", + "source_mapping": { + "start": 6889, + "length": 403, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "checkpointAssetBalances()" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in DsrBaseStrategy.checkpointAssetBalances() (contracts/v2/strategies/DsrBaseStrategy.sol#173-183):\n\tExternal calls:\n\t- (daiBalance) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#176)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\tEvent emitted after the call(s):\n\t- AssetBalancesCheckpoint(assetBalances) (contracts/v2/strategies/DsrBaseStrategy.sol#182)\n", + "markdown": "Reentrancy in [DsrBaseStrategy.checkpointAssetBalances()](contracts/v2/strategies/DsrBaseStrategy.sol#L173-L183):\n\tExternal calls:\n\t- [(daiBalance) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L176)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\tEvent emitted after the call(s):\n\t- [AssetBalancesCheckpoint(assetBalances)](contracts/v2/strategies/DsrBaseStrategy.sol#L182)\n", + "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L173-L183", + "id": "91547e7be3e8d823bd0bb0f659906fbda2e7c22a3e071f2d8982d126ca2e8293", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "depositAndStakeBptTokens", + "source_mapping": { + "start": 24025, + "length": 411, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "depositAndStakeBptTokens(uint256,bool)" + } + }, + { + "type": "node", + "name": "bptToken.safeTransferFrom(msg.sender,address(this),amount)", + "source_mapping": { + "start": 24208, + "length": 60, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [569], + "starting_column": 13, + "ending_column": 73 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "depositAndStakeBptTokens", + "source_mapping": { + "start": 24025, + "length": 411, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "depositAndStakeBptTokens(uint256,bool)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "bptToken.safeTransfer(address(amoStaking),amount)", + "source_mapping": { + "start": 24288, + "length": 50, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [571], + "starting_column": 9, + "ending_column": 59 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "depositAndStakeBptTokens", + "source_mapping": { + "start": 24025, + "length": 411, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "depositAndStakeBptTokens(uint256,bool)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "amoStaking.depositAndStake(amount)", + "source_mapping": { + "start": 24348, + "length": 34, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [572], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "depositAndStakeBptTokens", + "source_mapping": { + "start": 24025, + "length": 411, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "depositAndStakeBptTokens(uint256,bool)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "DepositAndStakeBptTokens(amount)", + "source_mapping": { + "start": 24392, + "length": 37, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [573], + "starting_column": 9, + "ending_column": 46 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "depositAndStakeBptTokens", + "source_mapping": { + "start": 24025, + "length": 411, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "depositAndStakeBptTokens(uint256,bool)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in Ramos.depositAndStakeBptTokens(uint256,bool) (contracts/amo/Ramos.sol#564-574):\n\tExternal calls:\n\t- bptToken.safeTransferFrom(msg.sender,address(this),amount) (contracts/amo/Ramos.sol#569)\n\t- bptToken.safeTransfer(address(amoStaking),amount) (contracts/amo/Ramos.sol#571)\n\t- amoStaking.depositAndStake(amount) (contracts/amo/Ramos.sol#572)\n\tEvent emitted after the call(s):\n\t- DepositAndStakeBptTokens(amount) (contracts/amo/Ramos.sol#573)\n", + "markdown": "Reentrancy in [Ramos.depositAndStakeBptTokens(uint256,bool)](contracts/amo/Ramos.sol#L564-L574):\n\tExternal calls:\n\t- [bptToken.safeTransferFrom(msg.sender,address(this),amount)](contracts/amo/Ramos.sol#L569)\n\t- [bptToken.safeTransfer(address(amoStaking),amount)](contracts/amo/Ramos.sol#L571)\n\t- [amoStaking.depositAndStake(amount)](contracts/amo/Ramos.sol#L572)\n\tEvent emitted after the call(s):\n\t- [DepositAndStakeBptTokens(amount)](contracts/amo/Ramos.sol#L573)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L564-L574", + "id": "a7249c20cc127d6173fc40d9683538ced29502e2d3e8095440a2939d5dddf5d0", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "rebalanceDownExit", + "source_mapping": { + "start": 13776, + "length": 1330, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceDownExit(uint256,uint256)" + } + }, + { + "type": "node", + "name": "amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper))", + "source_mapping": { + "start": 14207, + "length": 70, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [341], + "starting_column": 9, + "ending_column": 79 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceDownExit", + "source_mapping": { + "start": 13776, + "length": 1330, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceDownExit(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "quoteTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minQuoteTokenAmountOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,treasuryPriceIndex(),quoteToken)", + "source_mapping": { + "start": 14327, + "length": 266, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [344, 345, 346, 347], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceDownExit", + "source_mapping": { + "start": 13776, + "length": 1330, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceDownExit(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "quoteToken.safeTransfer(feeCollector,feeAmt)", + "source_mapping": { + "start": 14786, + "length": 45, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [352], + "starting_column": 13, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceDownExit", + "source_mapping": { + "start": 13776, + "length": 1330, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceDownExit(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "RebalanceDownExit(bptAmountIn,quoteTokenAmountOut,feeAmt)", + "source_mapping": { + "start": 14925, + "length": 64, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [358], + "starting_column": 9, + "ending_column": 73 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceDownExit", + "source_mapping": { + "start": 13776, + "length": 1330, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceDownExit(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in Ramos.rebalanceDownExit(uint256,uint256) (contracts/amo/Ramos.sol#332-362):\n\tExternal calls:\n\t- amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper)) (contracts/amo/Ramos.sol#341)\n\t- quoteTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minQuoteTokenAmountOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,treasuryPriceIndex(),quoteToken) (contracts/amo/Ramos.sol#344-347)\n\t- quoteToken.safeTransfer(feeCollector,feeAmt) (contracts/amo/Ramos.sol#352)\n\tEvent emitted after the call(s):\n\t- RebalanceDownExit(bptAmountIn,quoteTokenAmountOut,feeAmt) (contracts/amo/Ramos.sol#358)\n", + "markdown": "Reentrancy in [Ramos.rebalanceDownExit(uint256,uint256)](contracts/amo/Ramos.sol#L332-L362):\n\tExternal calls:\n\t- [amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper))](contracts/amo/Ramos.sol#L341)\n\t- [quoteTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minQuoteTokenAmountOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,treasuryPriceIndex(),quoteToken)](contracts/amo/Ramos.sol#L344-L347)\n\t- [quoteToken.safeTransfer(feeCollector,feeAmt)](contracts/amo/Ramos.sol#L352)\n\tEvent emitted after the call(s):\n\t- [RebalanceDownExit(bptAmountIn,quoteTokenAmountOut,feeAmt)](contracts/amo/Ramos.sol#L358)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L332-L362", + "id": "86a53e330fffe167ad16fe5543549acebea2b6d799ac824c06d7b5f50d6c38da", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "rebalanceDownJoin", + "source_mapping": { + "start": 17948, + "length": 1545, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceDownJoin(uint256,uint256)" + } + }, + { + "type": "node", + "name": "tokenVault.borrowProtocolToken(protocolTokenAmountIn,address(this))", + "source_mapping": { + "start": 18312, + "length": 68, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [427], + "starting_column": 9, + "ending_column": 77 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceDownJoin", + "source_mapping": { + "start": 17948, + "length": 1545, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceDownJoin(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "protocolToken.safeTransfer(feeCollector,feeAmt)", + "source_mapping": { + "start": 18586, + "length": 48, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [432], + "starting_column": 13, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceDownJoin", + "source_mapping": { + "start": 17948, + "length": 1545, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceDownJoin(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "protocolToken.safeTransfer(address(_poolHelper),joinAmountIn)", + "source_mapping": { + "start": 18818, + "length": 62, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [438], + "starting_column": 9, + "ending_column": 71 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceDownJoin", + "source_mapping": { + "start": 17948, + "length": 1545, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceDownJoin(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,protocolTokenBalancerPoolIndex,protocolToken)", + "source_mapping": { + "start": 18933, + "length": 264, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [441, 442, 443, 444, 445], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceDownJoin", + "source_mapping": { + "start": 17948, + "length": 1545, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceDownJoin(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "RebalanceDownJoin(protocolTokenAmountIn,bptTokensStaked,feeAmt)", + "source_mapping": { + "start": 19207, + "length": 70, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [446], + "starting_column": 9, + "ending_column": 79 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceDownJoin", + "source_mapping": { + "start": 17948, + "length": 1545, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceDownJoin(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in Ramos.rebalanceDownJoin(uint256,uint256) (contracts/amo/Ramos.sol#419-453):\n\tExternal calls:\n\t- tokenVault.borrowProtocolToken(protocolTokenAmountIn,address(this)) (contracts/amo/Ramos.sol#427)\n\t- protocolToken.safeTransfer(feeCollector,feeAmt) (contracts/amo/Ramos.sol#432)\n\t- protocolToken.safeTransfer(address(_poolHelper),joinAmountIn) (contracts/amo/Ramos.sol#438)\n\t- bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,protocolTokenBalancerPoolIndex,protocolToken) (contracts/amo/Ramos.sol#441-445)\n\tEvent emitted after the call(s):\n\t- RebalanceDownJoin(protocolTokenAmountIn,bptTokensStaked,feeAmt) (contracts/amo/Ramos.sol#446)\n", + "markdown": "Reentrancy in [Ramos.rebalanceDownJoin(uint256,uint256)](contracts/amo/Ramos.sol#L419-L453):\n\tExternal calls:\n\t- [tokenVault.borrowProtocolToken(protocolTokenAmountIn,address(this))](contracts/amo/Ramos.sol#L427)\n\t- [protocolToken.safeTransfer(feeCollector,feeAmt)](contracts/amo/Ramos.sol#L432)\n\t- [protocolToken.safeTransfer(address(_poolHelper),joinAmountIn)](contracts/amo/Ramos.sol#L438)\n\t- [bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,protocolTokenBalancerPoolIndex,protocolToken)](contracts/amo/Ramos.sol#L441-L445)\n\tEvent emitted after the call(s):\n\t- [RebalanceDownJoin(protocolTokenAmountIn,bptTokensStaked,feeAmt)](contracts/amo/Ramos.sol#L446)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L419-L453", + "id": "cf17a4ee1ba6b6f324d63d28f3c7859bb03f334538e78ac2daf4f5d9278251dd", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "rebalanceUpExit", + "source_mapping": { + "start": 11723, + "length": 1435, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceUpExit(uint256,uint256)" + } + }, + { + "type": "node", + "name": "amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper))", + "source_mapping": { + "start": 12146, + "length": 70, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [297], + "starting_column": 9, + "ending_column": 79 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceUpExit", + "source_mapping": { + "start": 11723, + "length": 1435, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceUpExit(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "protocolTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minProtocolTokenOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,protocolTokenBalancerPoolIndex,treasuryPriceIndex(),protocolToken)", + "source_mapping": { + "start": 12273, + "length": 279, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [300, 301, 302, 303, 304], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceUpExit", + "source_mapping": { + "start": 11723, + "length": 1435, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceUpExit(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "protocolToken.safeTransfer(feeCollector,feeAmt)", + "source_mapping": { + "start": 12751, + "length": 48, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [309], + "starting_column": 13, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceUpExit", + "source_mapping": { + "start": 11723, + "length": 1435, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceUpExit(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "RebalanceUpExit(bptAmountIn,protocolTokenAmountOut,feeAmt)", + "source_mapping": { + "start": 12967, + "length": 65, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [316], + "starting_column": 9, + "ending_column": 74 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceUpExit", + "source_mapping": { + "start": 11723, + "length": 1435, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceUpExit(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in Ramos.rebalanceUpExit(uint256,uint256) (contracts/amo/Ramos.sol#288-320):\n\tExternal calls:\n\t- amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper)) (contracts/amo/Ramos.sol#297)\n\t- protocolTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minProtocolTokenOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,protocolTokenBalancerPoolIndex,treasuryPriceIndex(),protocolToken) (contracts/amo/Ramos.sol#300-304)\n\t- protocolToken.safeTransfer(feeCollector,feeAmt) (contracts/amo/Ramos.sol#309)\n\tEvent emitted after the call(s):\n\t- RebalanceUpExit(bptAmountIn,protocolTokenAmountOut,feeAmt) (contracts/amo/Ramos.sol#316)\n", + "markdown": "Reentrancy in [Ramos.rebalanceUpExit(uint256,uint256)](contracts/amo/Ramos.sol#L288-L320):\n\tExternal calls:\n\t- [amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper))](contracts/amo/Ramos.sol#L297)\n\t- [protocolTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minProtocolTokenOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,protocolTokenBalancerPoolIndex,treasuryPriceIndex(),protocolToken)](contracts/amo/Ramos.sol#L300-L304)\n\t- [protocolToken.safeTransfer(feeCollector,feeAmt)](contracts/amo/Ramos.sol#L309)\n\tEvent emitted after the call(s):\n\t- [RebalanceUpExit(bptAmountIn,protocolTokenAmountOut,feeAmt)](contracts/amo/Ramos.sol#L316)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L288-L320", + "id": "f01702004594863e23f38f398fde5ec3a792ca5c4b26bd0a6b93e8dc1846cabf", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "rebalanceUpJoin", + "source_mapping": { + "start": 15773, + "length": 1496, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceUpJoin(uint256,uint256)" + } + }, + { + "type": "node", + "name": "tokenVault.borrowQuoteToken(quoteTokenAmountIn,address(this))", + "source_mapping": { + "start": 16123, + "length": 62, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [382], + "starting_column": 9, + "ending_column": 71 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceUpJoin", + "source_mapping": { + "start": 15773, + "length": 1496, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceUpJoin(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "quoteToken.safeTransfer(feeCollector,feeAmt)", + "source_mapping": { + "start": 16378, + "length": 45, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [387], + "starting_column": 13, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceUpJoin", + "source_mapping": { + "start": 15773, + "length": 1496, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceUpJoin(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "quoteToken.safeTransfer(address(_poolHelper),joinAmountIn)", + "source_mapping": { + "start": 16619, + "length": 59, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [393], + "starting_column": 9, + "ending_column": 68 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceUpJoin", + "source_mapping": { + "start": 15773, + "length": 1496, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceUpJoin(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,quoteToken)", + "source_mapping": { + "start": 16728, + "length": 250, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [396, 397, 398, 399], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceUpJoin", + "source_mapping": { + "start": 15773, + "length": 1496, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceUpJoin(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "RebalanceUpJoin(quoteTokenAmountIn,bptTokensStaked,feeAmt)", + "source_mapping": { + "start": 16988, + "length": 65, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [400], + "starting_column": 9, + "ending_column": 74 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "rebalanceUpJoin", + "source_mapping": { + "start": 15773, + "length": 1496, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "rebalanceUpJoin(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in Ramos.rebalanceUpJoin(uint256,uint256) (contracts/amo/Ramos.sol#374-407):\n\tExternal calls:\n\t- tokenVault.borrowQuoteToken(quoteTokenAmountIn,address(this)) (contracts/amo/Ramos.sol#382)\n\t- quoteToken.safeTransfer(feeCollector,feeAmt) (contracts/amo/Ramos.sol#387)\n\t- quoteToken.safeTransfer(address(_poolHelper),joinAmountIn) (contracts/amo/Ramos.sol#393)\n\t- bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,quoteToken) (contracts/amo/Ramos.sol#396-399)\n\tEvent emitted after the call(s):\n\t- RebalanceUpJoin(quoteTokenAmountIn,bptTokensStaked,feeAmt) (contracts/amo/Ramos.sol#400)\n", + "markdown": "Reentrancy in [Ramos.rebalanceUpJoin(uint256,uint256)](contracts/amo/Ramos.sol#L374-L407):\n\tExternal calls:\n\t- [tokenVault.borrowQuoteToken(quoteTokenAmountIn,address(this))](contracts/amo/Ramos.sol#L382)\n\t- [quoteToken.safeTransfer(feeCollector,feeAmt)](contracts/amo/Ramos.sol#L387)\n\t- [quoteToken.safeTransfer(address(_poolHelper),joinAmountIn)](contracts/amo/Ramos.sol#L393)\n\t- [bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,quoteToken)](contracts/amo/Ramos.sol#L396-L399)\n\tEvent emitted after the call(s):\n\t- [RebalanceUpJoin(quoteTokenAmountIn,bptTokensStaked,feeAmt)](contracts/amo/Ramos.sol#L400)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L374-L407", + "id": "d452854a083064df7259f0954835ef242ab535df19218e9bf3aaf9b81c9b26c1", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "recoverToGnosis", + "source_mapping": { + "start": 5325, + "length": 237, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [142, 143, 144, 145], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "recoverToGnosis(address,uint256)" + } + }, + { + "type": "node", + "name": "IERC20(token).safeTransfer(gnosisSafeWallet,amount)", + "source_mapping": { + "start": 5419, + "length": 52, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [143], + "starting_column": 9, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "recoverToGnosis", + "source_mapping": { + "start": 5325, + "length": 237, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [142, 143, 144, 145], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "recoverToGnosis(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "CommonEventsAndErrors.TokenRecovered(gnosisSafeWallet,token,amount)", + "source_mapping": { + "start": 5481, + "length": 74, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [144], + "starting_column": 9, + "ending_column": 83 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "recoverToGnosis", + "source_mapping": { + "start": 5325, + "length": 237, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [142, 143, 144, 145], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GnosisStrategy", + "source_mapping": { + "start": 584, + "length": 6684, + "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/GnosisStrategy.sol", + "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "recoverToGnosis(address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in GnosisStrategy.recoverToGnosis(address,uint256) (contracts/v2/strategies/GnosisStrategy.sol#142-145):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(gnosisSafeWallet,amount) (contracts/v2/strategies/GnosisStrategy.sol#143)\n\tEvent emitted after the call(s):\n\t- CommonEventsAndErrors.TokenRecovered(gnosisSafeWallet,token,amount) (contracts/v2/strategies/GnosisStrategy.sol#144)\n", + "markdown": "Reentrancy in [GnosisStrategy.recoverToGnosis(address,uint256)](contracts/v2/strategies/GnosisStrategy.sol#L142-L145):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(gnosisSafeWallet,amount)](contracts/v2/strategies/GnosisStrategy.sol#L143)\n\tEvent emitted after the call(s):\n\t- [CommonEventsAndErrors.TokenRecovered(gnosisSafeWallet,token,amount)](contracts/v2/strategies/GnosisStrategy.sol#L144)\n", + "first_markdown_element": "contracts/v2/strategies/GnosisStrategy.sol#L142-L145", + "id": "d9bd0a33246588c83983d63975a9ce55470568eeff09e037f055b8e7122562e2", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "recoverToken", + "source_mapping": { + "start": 2334, + "length": 206, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [67, 68, 69, 70, 71], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "recoverToken(address,address,uint256)" + } + }, + { + "type": "node", + "name": "IERC20(token).safeTransfer(to,amount)", + "source_mapping": { + "start": 2446, + "length": 38, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [68], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "recoverToken", + "source_mapping": { + "start": 2334, + "length": 206, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [67, 68, 69, 70, 71], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "recoverToken(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "RecoveredToken(token,to,amount)", + "source_mapping": { + "start": 2495, + "length": 38, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [70], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "recoverToken", + "source_mapping": { + "start": 2334, + "length": 206, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [67, 68, 69, 70, 71], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AuraStaking", + "source_mapping": { + "start": 604, + "length": 5204, + "filename_relative": "contracts/amo/AuraStaking.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/AuraStaking.sol", + "filename_short": "contracts/amo/AuraStaking.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "recoverToken(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in AuraStaking.recoverToken(address,address,uint256) (contracts/amo/AuraStaking.sol#67-71):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(to,amount) (contracts/amo/AuraStaking.sol#68)\n\tEvent emitted after the call(s):\n\t- RecoveredToken(token,to,amount) (contracts/amo/AuraStaking.sol#70)\n", + "markdown": "Reentrancy in [AuraStaking.recoverToken(address,address,uint256)](contracts/amo/AuraStaking.sol#L67-L71):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(to,amount)](contracts/amo/AuraStaking.sol#L68)\n\tEvent emitted after the call(s):\n\t- [RecoveredToken(token,to,amount)](contracts/amo/AuraStaking.sol#L70)\n", + "first_markdown_element": "contracts/amo/AuraStaking.sol#L67-L71", + "id": "721f7e4ea8f943fb92b4b72846f0042313e2b5e55c2edcd24d2ab5f7aab87665", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "recoverToken", + "source_mapping": { + "start": 10888, + "length": 197, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [272, 273, 274, 275, 276], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "recoverToken(address,address,uint256)" + } + }, + { + "type": "node", + "name": "IERC20(token).safeTransfer(to,amount)", + "source_mapping": { + "start": 10991, + "length": 38, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [273], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "recoverToken", + "source_mapping": { + "start": 10888, + "length": 197, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [272, 273, 274, 275, 276], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "recoverToken(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "RecoveredToken(token,to,amount)", + "source_mapping": { + "start": 11040, + "length": 38, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [275], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "recoverToken", + "source_mapping": { + "start": 10888, + "length": 197, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [272, 273, 274, 275, 276], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "recoverToken(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in Ramos.recoverToken(address,address,uint256) (contracts/amo/Ramos.sol#272-276):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(to,amount) (contracts/amo/Ramos.sol#273)\n\tEvent emitted after the call(s):\n\t- RecoveredToken(token,to,amount) (contracts/amo/Ramos.sol#275)\n", + "markdown": "Reentrancy in [Ramos.recoverToken(address,address,uint256)](contracts/amo/Ramos.sol#L272-L276):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(to,amount)](contracts/amo/Ramos.sol#L273)\n\tEvent emitted after the call(s):\n\t- [RecoveredToken(token,to,amount)](contracts/amo/Ramos.sol#L275)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L272-L276", + "id": "15a59117d9f24ee76b20d5a5453f589570a7f156b421e560b9305927c9131e2c", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "removeCollateral", + "source_mapping": { + "start": 6498, + "length": 1031, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, + 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, + 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, + 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeCollateral(uint128,address)" + } + }, + { + "type": "node", + "name": "circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)", + "source_mapping": { + "start": 7012, + "length": 118, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [173, 174, 175, 176, 177], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeCollateral", + "source_mapping": { + "start": 6498, + "length": 1031, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeCollateral(uint128,address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "CollateralRemoved(msg.sender,recipient,amount)", + "source_mapping": { + "start": 7320, + "length": 53, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [182], + "starting_column": 9, + "ending_column": 62 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeCollateral", + "source_mapping": { + "start": 6498, + "length": 1031, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeCollateral(uint128,address)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TempleLineOfCredit.removeCollateral(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#166-190):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#173-177)\n\tEvent emitted after the call(s):\n\t- CollateralRemoved(msg.sender,recipient,amount) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#182)\n", + "markdown": "Reentrancy in [TempleLineOfCredit.removeCollateral(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L173-L177)\n\tEvent emitted after the call(s):\n\t- [CollateralRemoved(msg.sender,recipient,amount)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L182)\n", + "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190", + "id": "995ebae8f6668f6a1d468a923e261df6e2cd441ac86401c473cc53982585815d", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "removeLiquidity", + "source_mapping": { + "start": 22407, + "length": 1408, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" + } + }, + { + "type": "node", + "name": "amoStaking.withdrawAndUnwrap(bptIn,false,address(this))", + "source_mapping": { + "start": 23088, + "length": 57, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [539], + "starting_column": 9, + "ending_column": 66 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeLiquidity", + "source_mapping": { + "start": 22407, + "length": 1408, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "balancerVault.exitPool(balancerPoolId,address(this),address(this),request)", + "source_mapping": { + "start": 23155, + "length": 77, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [540], + "starting_column": 9, + "ending_column": 86 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeLiquidity", + "source_mapping": { + "start": 22407, + "length": 1408, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "_tokenVault.repayProtocolToken(protocolTokenAmount)", + "source_mapping": { + "start": 23563, + "length": 51, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [549], + "starting_column": 13, + "ending_column": 64 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeLiquidity", + "source_mapping": { + "start": 22407, + "length": 1408, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "_tokenVault.repayQuoteToken(quoteTokenAmount)", + "source_mapping": { + "start": 23675, + "length": 45, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [553], + "starting_column": 13, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeLiquidity", + "source_mapping": { + "start": 22407, + "length": 1408, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "LiquidityRemoved(quoteTokenAmount,protocolTokenAmount,bptIn)", + "source_mapping": { + "start": 23741, + "length": 67, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [556], + "starting_column": 9, + "ending_column": 76 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeLiquidity", + "source_mapping": { + "start": 22407, + "length": 1408, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Ramos", + "source_mapping": { + "start": 1890, + "length": 24208, + "filename_relative": "contracts/amo/Ramos.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amo/Ramos.sol", + "filename_short": "contracts/amo/Ramos.sol", + "is_dependency": false, + "lines": [ + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in Ramos.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256) (contracts/amo/Ramos.sol#520-557):\n\tExternal calls:\n\t- amoStaking.withdrawAndUnwrap(bptIn,false,address(this)) (contracts/amo/Ramos.sol#539)\n\t- balancerVault.exitPool(balancerPoolId,address(this),address(this),request) (contracts/amo/Ramos.sol#540)\n\t- _tokenVault.repayProtocolToken(protocolTokenAmount) (contracts/amo/Ramos.sol#549)\n\t- _tokenVault.repayQuoteToken(quoteTokenAmount) (contracts/amo/Ramos.sol#553)\n\tEvent emitted after the call(s):\n\t- LiquidityRemoved(quoteTokenAmount,protocolTokenAmount,bptIn) (contracts/amo/Ramos.sol#556)\n", + "markdown": "Reentrancy in [Ramos.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)](contracts/amo/Ramos.sol#L520-L557):\n\tExternal calls:\n\t- [amoStaking.withdrawAndUnwrap(bptIn,false,address(this))](contracts/amo/Ramos.sol#L539)\n\t- [balancerVault.exitPool(balancerPoolId,address(this),address(this),request)](contracts/amo/Ramos.sol#L540)\n\t- [_tokenVault.repayProtocolToken(protocolTokenAmount)](contracts/amo/Ramos.sol#L549)\n\t- [_tokenVault.repayQuoteToken(quoteTokenAmount)](contracts/amo/Ramos.sol#L553)\n\tEvent emitted after the call(s):\n\t- [LiquidityRemoved(quoteTokenAmount,protocolTokenAmount,bptIn)](contracts/amo/Ramos.sol#L556)\n", + "first_markdown_element": "contracts/amo/Ramos.sol#L520-L557", + "id": "58971ea68a44f13c3035e5c40470aed4ee35ec8780baec9e6fde35f1a56bae22", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "removeLiquidity", + "source_mapping": { + "start": 8140, + "length": 365, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [209, 210, 211, 212, 213, 214, 215], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" + } + }, + { + "type": "node", + "name": "(quoteTokenAmount,protocolTokenAmount) = ramos.removeLiquidity(_requestData,_bptAmount)", + "source_mapping": { + "start": 8277, + "length": 140, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [210, 211, 212, 213], + "starting_column": 9, + "ending_column": 60 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeLiquidity", + "source_mapping": { + "start": 8140, + "length": 365, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [209, 210, 211, 212, 213, 214, 215], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "RemoveLiquidity(quoteTokenAmount,protocolTokenAmount,_bptAmount)", + "source_mapping": { + "start": 8427, + "length": 71, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [214], + "starting_column": 9, + "ending_column": 80 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "removeLiquidity", + "source_mapping": { + "start": 8140, + "length": 365, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [209, 210, 211, 212, 213, 214, 215], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RamosStrategy", + "source_mapping": { + "start": 1131, + "length": 9320, + "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/RamosStrategy.sol", + "filename_short": "contracts/v2/strategies/RamosStrategy.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in RamosStrategy.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256) (contracts/v2/strategies/RamosStrategy.sol#209-215):\n\tExternal calls:\n\t- (quoteTokenAmount,protocolTokenAmount) = ramos.removeLiquidity(_requestData,_bptAmount) (contracts/v2/strategies/RamosStrategy.sol#210-213)\n\tEvent emitted after the call(s):\n\t- RemoveLiquidity(quoteTokenAmount,protocolTokenAmount,_bptAmount) (contracts/v2/strategies/RamosStrategy.sol#214)\n", + "markdown": "Reentrancy in [RamosStrategy.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)](contracts/v2/strategies/RamosStrategy.sol#L209-L215):\n\tExternal calls:\n\t- [(quoteTokenAmount,protocolTokenAmount) = ramos.removeLiquidity(_requestData,_bptAmount)](contracts/v2/strategies/RamosStrategy.sol#L210-L213)\n\tEvent emitted after the call(s):\n\t- [RemoveLiquidity(quoteTokenAmount,protocolTokenAmount,_bptAmount)](contracts/v2/strategies/RamosStrategy.sol#L214)\n", + "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L209-L215", + "id": "7c31093def50156c36e632afd1bdd7b3c7f967dee0aff539f837b6a8448615ae", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "setTlcStrategy", + "source_mapping": { + "start": 15688, + "length": 819, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, + 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, + 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, + 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTlcStrategy(address)" + } + }, + { + "type": "node", + "name": "daiToken.approve(previousTrv,0)", + "source_mapping": { + "start": 16002, + "length": 32, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [394], + "starting_column": 13, + "ending_column": 45 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTlcStrategy", + "source_mapping": { + "start": 15688, + "length": 819, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTlcStrategy(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "daiToken.forceApprove(_trv,type()(uint256).max)", + "source_mapping": { + "start": 16245, + "length": 46, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [402], + "starting_column": 13, + "ending_column": 59 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTlcStrategy", + "source_mapping": { + "start": 15688, + "length": 819, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTlcStrategy(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "TlcStrategySet(newTlcStrategy,_trv)", + "source_mapping": { + "start": 16312, + "length": 41, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [405], + "starting_column": 9, + "ending_column": 50 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTlcStrategy", + "source_mapping": { + "start": 15688, + "length": 819, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTlcStrategy(address)" } - ], - "description": "Reentrancy in GnosisStrategy.borrow(IERC20,uint256) (contracts/v2/strategies/GnosisStrategy.sol#88-96):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(token),msg.sender,amount) (contracts/v2/strategies/GnosisStrategy.sol#89-93)\n\tEvent emitted after the call(s):\n\t- Borrow(address(token),amount) (contracts/v2/strategies/GnosisStrategy.sol#94)\n", - "markdown": "Reentrancy in [GnosisStrategy.borrow(IERC20,uint256)](contracts/v2/strategies/GnosisStrategy.sol#L88-L96):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(token),msg.sender,amount)](contracts/v2/strategies/GnosisStrategy.sol#L89-L93)\n\tEvent emitted after the call(s):\n\t- [Borrow(address(token),amount)](contracts/v2/strategies/GnosisStrategy.sol#L94)\n", - "first_markdown_element": "contracts/v2/strategies/GnosisStrategy.sol#L88-L96", - "id": "816d5794942352b4b9c381b210cb4b35ac9c43889f1c7eaa1b7e32f3c1f8ab33", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7809, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 195, - 196, - 197, - 198, - 199 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - }, - { - "type": "node", - "name": "treasuryReservesVault.borrow(daiToken,amount,address(this))", - "source_mapping": { - "start": 7958, - "length": 61, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 197 - ], - "starting_column": 9, - "ending_column": 70 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7809, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 195, - 196, - 197, - 198, - 199 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_dsrDeposit(amount)", - "source_mapping": { - "start": 8029, - "length": 19, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 198 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7809, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 195, - 196, - 197, - 198, - 199 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5566, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 142 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5445, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "daiJoin.join(address(this),amount)", - "source_mapping": { - "start": 8342, - "length": 35, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 207 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8061, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "pot.join(shares)", - "source_mapping": { - "start": 8387, - "length": 16, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 208 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8061, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiDeposited(amount)", - "source_mapping": { - "start": 8307, - "length": 25, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 206 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrDeposit", - "source_mapping": { - "start": 8061, - "length": 349, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_dsrDeposit(amount)", - "source_mapping": { - "start": 8029, - "length": 19, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 198 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 7809, - "length": 246, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 195, - 196, - 197, - 198, - 199 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-409):\n\tExternal calls:\n\t- daiToken.approve(previousTrv,0) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#394)\n\t- daiToken.forceApprove(_trv,type()(uint256).max) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#402)\n\tEvent emitted after the call(s):\n\t- TlcStrategySet(newTlcStrategy,_trv) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#405)\n", + "markdown": "Reentrancy in [TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L409):\n\tExternal calls:\n\t- [daiToken.approve(previousTrv,0)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)\n\t- [daiToken.forceApprove(_trv,type()(uint256).max)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L402)\n\tEvent emitted after the call(s):\n\t- [TlcStrategySet(newTlcStrategy,_trv)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L405)\n", + "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L409", + "id": "c39c59a77f1824a150880b6907c47e451f7784419c1b3eab509e104e0a7eba72", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "shutdown", + "source_mapping": { + "start": 11822, + "length": 1632, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in DsrBaseStrategy.borrowAndDeposit(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#195-199):\n\tExternal calls:\n\t- treasuryReservesVault.borrow(daiToken,amount,address(this)) (contracts/v2/strategies/DsrBaseStrategy.sol#197)\n\t- _dsrDeposit(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#198)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\t\t- daiJoin.join(address(this),amount) (contracts/v2/strategies/DsrBaseStrategy.sol#207)\n\t\t- pot.join(shares) (contracts/v2/strategies/DsrBaseStrategy.sol#208)\n\tEvent emitted after the call(s):\n\t- DaiDeposited(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#206)\n\t\t- _dsrDeposit(amount) (contracts/v2/strategies/DsrBaseStrategy.sol#198)\n", - "markdown": "Reentrancy in [DsrBaseStrategy.borrowAndDeposit(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L195-L199):\n\tExternal calls:\n\t- [treasuryReservesVault.borrow(daiToken,amount,address(this))](contracts/v2/strategies/DsrBaseStrategy.sol#L197)\n\t- [_dsrDeposit(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L198)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\t\t- [daiJoin.join(address(this),amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L207)\n\t\t- [pot.join(shares)](contracts/v2/strategies/DsrBaseStrategy.sol#L208)\n\tEvent emitted after the call(s):\n\t- [DaiDeposited(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L206)\n\t\t- [_dsrDeposit(amount)](contracts/v2/strategies/DsrBaseStrategy.sol#L198)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L195-L199", - "id": "fa02cb67c0fadd634b5b58c828b6c896bd82d9eafb17365664e0ed1810997c50", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 2046, - "length": 229, - "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTokenBaseStrategy", - "source_mapping": { - "start": 689, - "length": 4427, - "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - }, - { - "type": "node", - "name": "treasuryReservesVault.borrow(templeToken,amount,address(this))", - "source_mapping": { - "start": 2135, - "length": 64, - "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 62 - ], - "starting_column": 9, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 2046, - "length": 229, - "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTokenBaseStrategy", - "source_mapping": { - "start": 689, - "length": 4427, - "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "TempleBurned(amount)", + }, + "signature": "shutdown(address)" + } + }, + { + "type": "node", + "name": "_outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy)", + "source_mapping": { + "start": 12499, + "length": 64, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [296], + "starting_column": 13, + "ending_column": 77 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "shutdown", + "source_mapping": { + "start": 11822, + "length": 1632, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 2209, - "length": 25, - "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 63 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowAndDeposit", - "source_mapping": { - "start": 2046, - "length": 229, - "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTokenBaseStrategy", - "source_mapping": { - "start": 689, - "length": 4427, - "filename_relative": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/TempleTokenBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowAndDeposit(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "shutdown(address)" } - ], - "description": "Reentrancy in TempleTokenBaseStrategy.borrowAndDeposit(uint256) (contracts/v2/strategies/TempleTokenBaseStrategy.sol#61-65):\n\tExternal calls:\n\t- treasuryReservesVault.borrow(templeToken,amount,address(this)) (contracts/v2/strategies/TempleTokenBaseStrategy.sol#62)\n\tEvent emitted after the call(s):\n\t- TempleBurned(amount) (contracts/v2/strategies/TempleTokenBaseStrategy.sol#63)\n", - "markdown": "Reentrancy in [TempleTokenBaseStrategy.borrowAndDeposit(uint256)](contracts/v2/strategies/TempleTokenBaseStrategy.sol#L61-L65):\n\tExternal calls:\n\t- [treasuryReservesVault.borrow(templeToken,amount,address(this))](contracts/v2/strategies/TempleTokenBaseStrategy.sol#L62)\n\tEvent emitted after the call(s):\n\t- [TempleBurned(amount)](contracts/v2/strategies/TempleTokenBaseStrategy.sol#L63)\n", - "first_markdown_element": "contracts/v2/strategies/TempleTokenBaseStrategy.sol#L61-L65", - "id": "a4b7ebab2add03874fc7d7e0fb2176bb3cce4461f7bee4c56c5e3938077ba4b2", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "borrowMax", - "source_mapping": { - "start": 3668, - "length": 489, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowMax(IERC20)" - } - }, - { - "type": "node", - "name": "circuitBreakerProxy.preCheck(address(token),msg.sender,borrowedAmount)", - "source_mapping": { - "start": 3915, - "length": 120, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 105, - 106, - 107, - 108, - 109 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowMax", - "source_mapping": { - "start": 3668, - "length": 489, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowMax(IERC20)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Borrow(address(token),borrowedAmount)", + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "StrategyRemoved(strategy)", + "source_mapping": { + "start": 13162, + "length": 30, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [312], + "starting_column": 9, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "shutdown", + "source_mapping": { + "start": 11822, + "length": 1632, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 4045, - "length": 43, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 110 - ], - "starting_column": 9, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowMax", - "source_mapping": { - "start": 3668, - "length": 489, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowMax(IERC20)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "shutdown(address)" } - ], - "description": "Reentrancy in GnosisStrategy.borrowMax(IERC20) (contracts/v2/strategies/GnosisStrategy.sol#102-112):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(token),msg.sender,borrowedAmount) (contracts/v2/strategies/GnosisStrategy.sol#105-109)\n\tEvent emitted after the call(s):\n\t- Borrow(address(token),borrowedAmount) (contracts/v2/strategies/GnosisStrategy.sol#110)\n", - "markdown": "Reentrancy in [GnosisStrategy.borrowMax(IERC20)](contracts/v2/strategies/GnosisStrategy.sol#L102-L112):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(token),msg.sender,borrowedAmount)](contracts/v2/strategies/GnosisStrategy.sol#L105-L109)\n\tEvent emitted after the call(s):\n\t- [Borrow(address(token),borrowedAmount)](contracts/v2/strategies/GnosisStrategy.sol#L110)\n", - "first_markdown_element": "contracts/v2/strategies/GnosisStrategy.sol#L102-L112", - "id": "c3beb3c3be57476ae61c0a7cfb0301faed9288220416d314839649d2de9f7b5e", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "borrowProtocolToken", - "source_mapping": { - "start": 3626, - "length": 353, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowProtocolToken(uint256,address)" - } - }, - { - "type": "node", - "name": "circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)", - "source_mapping": { - "start": 3728, - "length": 118, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 92, - 93, - 94, - 95, - 96 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowProtocolToken", - "source_mapping": { - "start": 3626, - "length": 353, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowProtocolToken(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "BorrowToken(address(templeToken),amount)", + } + }, + "additional_fields": { "underlying_type": "event" } + }, + { + "type": "node", + "name": "StrategyShutdownCreditAndDebt({strategy:strategy,token:address(_token),outstandingCredit:credits[_token],outstandingDebt:_outstandingDebt})", + "source_mapping": { + "start": 12577, + "length": 231, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [297, 298, 299, 300, 301, 302], + "starting_column": 13, + "ending_column": 15 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "shutdown", + "source_mapping": { + "start": 11822, + "length": 1632, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryReservesVault", "source_mapping": { - "start": 3856, - "length": 46, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 97 - ], - "starting_column": 9, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowProtocolToken", - "source_mapping": { - "start": 3626, - "length": 353, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowProtocolToken(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "shutdown(address)" } - ], - "description": "Reentrancy in RamosStrategy.borrowProtocolToken(uint256,address) (contracts/v2/strategies/RamosStrategy.sol#91-99):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount) (contracts/v2/strategies/RamosStrategy.sol#92-96)\n\tEvent emitted after the call(s):\n\t- BorrowToken(address(templeToken),amount) (contracts/v2/strategies/RamosStrategy.sol#97)\n", - "markdown": "Reentrancy in [RamosStrategy.borrowProtocolToken(uint256,address)](contracts/v2/strategies/RamosStrategy.sol#L91-L99):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)](contracts/v2/strategies/RamosStrategy.sol#L92-L96)\n\tEvent emitted after the call(s):\n\t- [BorrowToken(address(templeToken),amount)](contracts/v2/strategies/RamosStrategy.sol#L97)\n", - "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L91-L99", - "id": "e0ba9fad7b97dfcfdfbb8b5dcf413149d4e3c15549b5560fb8aacdf2167f9e31", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "borrowQuoteToken", - "source_mapping": { - "start": 4172, - "length": 347, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowQuoteToken(uint256,address)" - } - }, - { - "type": "node", - "name": "circuitBreakerProxy.preCheck(address(quoteToken),msg.sender,amount)", - "source_mapping": { - "start": 4271, - "length": 117, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 107, - 108, - 109, - 110, - 111 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowQuoteToken", - "source_mapping": { - "start": 4172, - "length": 347, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowQuoteToken(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "BorrowToken(address(quoteToken),amount)", - "source_mapping": { - "start": 4398, - "length": 45, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 112 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "borrowQuoteToken", - "source_mapping": { - "start": 4172, - "length": 347, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowQuoteToken(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319):\n\tExternal calls:\n\t- _outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy) (contracts/v2/TreasuryReservesVault.sol#296)\n\tEvent emitted after the call(s):\n\t- StrategyRemoved(strategy) (contracts/v2/TreasuryReservesVault.sol#312)\n\t- StrategyShutdownCreditAndDebt({strategy:strategy,token:address(_token),outstandingCredit:credits[_token],outstandingDebt:_outstandingDebt}) (contracts/v2/TreasuryReservesVault.sol#297-302)\n", + "markdown": "Reentrancy in [TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319):\n\tExternal calls:\n\t- [_outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy)](contracts/v2/TreasuryReservesVault.sol#L296)\n\tEvent emitted after the call(s):\n\t- [StrategyRemoved(strategy)](contracts/v2/TreasuryReservesVault.sol#L312)\n\t- [StrategyShutdownCreditAndDebt({strategy:strategy,token:address(_token),outstandingCredit:credits[_token],outstandingDebt:_outstandingDebt})](contracts/v2/TreasuryReservesVault.sol#L297-L302)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L283-L319", + "id": "3770a3cd34d6db65975f14acb9170e3663edac9809964808500e613a8be2344e", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "trvWithdraw", + "source_mapping": { + "start": 10561, + "length": 947, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in RamosStrategy.borrowQuoteToken(uint256,address) (contracts/v2/strategies/RamosStrategy.sol#106-114):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(quoteToken),msg.sender,amount) (contracts/v2/strategies/RamosStrategy.sol#107-111)\n\tEvent emitted after the call(s):\n\t- BorrowToken(address(quoteToken),amount) (contracts/v2/strategies/RamosStrategy.sol#112)\n", - "markdown": "Reentrancy in [RamosStrategy.borrowQuoteToken(uint256,address)](contracts/v2/strategies/RamosStrategy.sol#L106-L114):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(quoteToken),msg.sender,amount)](contracts/v2/strategies/RamosStrategy.sol#L107-L111)\n\tEvent emitted after the call(s):\n\t- [BorrowToken(address(quoteToken),amount)](contracts/v2/strategies/RamosStrategy.sol#L112)\n", - "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L106-L114", - "id": "bbc7a06e8819c324c8e6cacd486325e56ef60f1d5a3b26d061c95866855e9804", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "checkpointAssetBalances", - "source_mapping": { - "start": 6888, - "length": 403, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "checkpointAssetBalances()" - } - }, - { - "type": "node", - "name": "(daiBalance) = _checkpointDaiBalance()", - "source_mapping": { - "start": 7011, - "length": 48, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 176 - ], - "starting_column": 9, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "checkpointAssetBalances", - "source_mapping": { - "start": 6888, - "length": 403, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "checkpointAssetBalances()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5566, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 142 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5445, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "AssetBalancesCheckpoint(assetBalances)", - "source_mapping": { - "start": 7241, - "length": 43, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 182 - ], - "starting_column": 9, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "checkpointAssetBalances", - "source_mapping": { - "start": 6888, - "length": 403, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "checkpointAssetBalances()" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "trvWithdraw(uint256)" + } + }, + { + "type": "node", + "name": "(daiAvailable,chi,sharesAvailable) = _checkpointDaiBalance()", + "source_mapping": { + "start": 11011, + "length": 86, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [264], + "starting_column": 9, + "ending_column": 95 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "trvWithdraw", + "source_mapping": { + "start": 10561, + "length": 947, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "trvWithdraw(uint256)" } - ], - "description": "Reentrancy in DsrBaseStrategy.checkpointAssetBalances() (contracts/v2/strategies/DsrBaseStrategy.sol#173-183):\n\tExternal calls:\n\t- (daiBalance) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#176)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\tEvent emitted after the call(s):\n\t- AssetBalancesCheckpoint(assetBalances) (contracts/v2/strategies/DsrBaseStrategy.sol#182)\n", - "markdown": "Reentrancy in [DsrBaseStrategy.checkpointAssetBalances()](contracts/v2/strategies/DsrBaseStrategy.sol#L173-L183):\n\tExternal calls:\n\t- [(daiBalance) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L176)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\tEvent emitted after the call(s):\n\t- [AssetBalancesCheckpoint(assetBalances)](contracts/v2/strategies/DsrBaseStrategy.sol#L182)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L173-L183", - "id": "91547e7be3e8d823bd0bb0f659906fbda2e7c22a3e071f2d8982d126ca2e8293", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "depositAndStakeBptTokens", - "source_mapping": { - "start": 24153, - "length": 411, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "depositAndStakeBptTokens(uint256,bool)" - } - }, - { - "type": "node", - "name": "bptToken.safeTransferFrom(msg.sender,address(this),amount)", - "source_mapping": { - "start": 24336, - "length": 60, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 571 - ], - "starting_column": 13, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositAndStakeBptTokens", - "source_mapping": { - "start": 24153, - "length": 411, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "depositAndStakeBptTokens(uint256,bool)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "bptToken.safeTransfer(address(amoStaking),amount)", - "source_mapping": { - "start": 24416, - "length": 50, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 573 - ], - "starting_column": 9, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositAndStakeBptTokens", - "source_mapping": { - "start": 24153, - "length": 411, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "depositAndStakeBptTokens(uint256,bool)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "amoStaking.depositAndStake(amount)", - "source_mapping": { - "start": 24476, - "length": 34, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 574 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositAndStakeBptTokens", - "source_mapping": { - "start": 24153, - "length": 411, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "depositAndStakeBptTokens(uint256,bool)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "DepositAndStakeBptTokens(amount)", - "source_mapping": { - "start": 24520, - "length": 37, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 575 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositAndStakeBptTokens", - "source_mapping": { - "start": 24153, - "length": 411, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "depositAndStakeBptTokens(uint256,bool)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "chi = pot.drip()", + "source_mapping": { + "start": 5567, + "length": 60, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [142], + "starting_column": 9, + "ending_column": 69 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_checkpointChi", + "source_mapping": { + "start": 5446, + "length": 188, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [140, 141, 142, 143], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_checkpointChi()" } - ], - "description": "Reentrancy in Ramos.depositAndStakeBptTokens(uint256,bool) (contracts/amo/Ramos.sol#566-576):\n\tExternal calls:\n\t- bptToken.safeTransferFrom(msg.sender,address(this),amount) (contracts/amo/Ramos.sol#571)\n\t- bptToken.safeTransfer(address(amoStaking),amount) (contracts/amo/Ramos.sol#573)\n\t- amoStaking.depositAndStake(amount) (contracts/amo/Ramos.sol#574)\n\tEvent emitted after the call(s):\n\t- DepositAndStakeBptTokens(amount) (contracts/amo/Ramos.sol#575)\n", - "markdown": "Reentrancy in [Ramos.depositAndStakeBptTokens(uint256,bool)](contracts/amo/Ramos.sol#L566-L576):\n\tExternal calls:\n\t- [bptToken.safeTransferFrom(msg.sender,address(this),amount)](contracts/amo/Ramos.sol#L571)\n\t- [bptToken.safeTransfer(address(amoStaking),amount)](contracts/amo/Ramos.sol#L573)\n\t- [amoStaking.depositAndStake(amount)](contracts/amo/Ramos.sol#L574)\n\tEvent emitted after the call(s):\n\t- [DepositAndStakeBptTokens(amount)](contracts/amo/Ramos.sol#L575)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L566-L576", - "id": "67e99bfded023e26233003458844419ba59173900b8f69b73dd5b1196eedee80", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "rebalanceDownExit", - "source_mapping": { - "start": 13900, - "length": 1330, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownExit(uint256,uint256)" - } - }, - { - "type": "node", - "name": "amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper))", - "source_mapping": { - "start": 14331, - "length": 70, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 343 - ], - "starting_column": 9, - "ending_column": 79 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownExit", - "source_mapping": { - "start": 13900, - "length": 1330, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minQuoteTokenAmountOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,treasuryPriceIndex(),quoteToken)", - "source_mapping": { - "start": 14451, - "length": 266, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 346, - 347, - 348, - 349 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownExit", - "source_mapping": { - "start": 13900, - "length": 1330, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.safeTransfer(feeCollector,feeAmt)", - "source_mapping": { - "start": 14910, - "length": 45, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 354 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownExit", - "source_mapping": { - "start": 13900, - "length": 1330, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RebalanceDownExit(bptAmountIn,quoteTokenAmountOut,feeAmt)", - "source_mapping": { - "start": 15049, - "length": 64, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 360 - ], - "starting_column": 9, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownExit", - "source_mapping": { - "start": 13900, - "length": 1330, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_dsrWithdrawal(sharesAmount,requestedAmount)", + "source_mapping": { + "start": 11366, + "length": 45, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [273], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "trvWithdraw", + "source_mapping": { + "start": 10561, + "length": 947, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "trvWithdraw(uint256)" } - ], - "description": "Reentrancy in Ramos.rebalanceDownExit(uint256,uint256) (contracts/amo/Ramos.sol#334-364):\n\tExternal calls:\n\t- amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper)) (contracts/amo/Ramos.sol#343)\n\t- quoteTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minQuoteTokenAmountOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,treasuryPriceIndex(),quoteToken) (contracts/amo/Ramos.sol#346-349)\n\t- quoteToken.safeTransfer(feeCollector,feeAmt) (contracts/amo/Ramos.sol#354)\n\tEvent emitted after the call(s):\n\t- RebalanceDownExit(bptAmountIn,quoteTokenAmountOut,feeAmt) (contracts/amo/Ramos.sol#360)\n", - "markdown": "Reentrancy in [Ramos.rebalanceDownExit(uint256,uint256)](contracts/amo/Ramos.sol#L334-L364):\n\tExternal calls:\n\t- [amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper))](contracts/amo/Ramos.sol#L343)\n\t- [quoteTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minQuoteTokenAmountOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,treasuryPriceIndex(),quoteToken)](contracts/amo/Ramos.sol#L346-L349)\n\t- [quoteToken.safeTransfer(feeCollector,feeAmt)](contracts/amo/Ramos.sol#L354)\n\tEvent emitted after the call(s):\n\t- [RebalanceDownExit(bptAmountIn,quoteTokenAmountOut,feeAmt)](contracts/amo/Ramos.sol#L360)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L334-L364", - "id": "6083aa0bd6d99d380fd5f140d51f148bea51f9d21cc99bae41a0172c0c80592f", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "rebalanceDownJoin", - "source_mapping": { - "start": 18072, - "length": 1545, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownJoin(uint256,uint256)" - } - }, - { - "type": "node", - "name": "tokenVault.borrowProtocolToken(protocolTokenAmountIn,address(this))", - "source_mapping": { - "start": 18436, - "length": 68, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 429 - ], - "starting_column": 9, - "ending_column": 77 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownJoin", - "source_mapping": { - "start": 18072, - "length": 1545, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "protocolToken.safeTransfer(feeCollector,feeAmt)", - "source_mapping": { - "start": 18710, - "length": 48, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 434 - ], - "starting_column": 13, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownJoin", - "source_mapping": { - "start": 18072, - "length": 1545, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "protocolToken.safeTransfer(address(_poolHelper),joinAmountIn)", - "source_mapping": { - "start": 18942, - "length": 62, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 440 - ], - "starting_column": 9, - "ending_column": 71 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownJoin", - "source_mapping": { - "start": 18072, - "length": 1545, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,protocolTokenBalancerPoolIndex,protocolToken)", - "source_mapping": { - "start": 19057, - "length": 264, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 443, - 444, - 445, - 446, - 447 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownJoin", - "source_mapping": { - "start": 18072, - "length": 1545, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RebalanceDownJoin(protocolTokenAmountIn,bptTokensStaked,feeAmt)", - "source_mapping": { - "start": 19331, - "length": 70, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 448 - ], - "starting_column": 9, - "ending_column": 79 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceDownJoin", - "source_mapping": { - "start": 18072, - "length": 1545, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceDownJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "pot.exit(sharesAmount)", + "source_mapping": { + "start": 11598, + "length": 22, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [279], + "starting_column": 9, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" } - ], - "description": "Reentrancy in Ramos.rebalanceDownJoin(uint256,uint256) (contracts/amo/Ramos.sol#421-455):\n\tExternal calls:\n\t- tokenVault.borrowProtocolToken(protocolTokenAmountIn,address(this)) (contracts/amo/Ramos.sol#429)\n\t- protocolToken.safeTransfer(feeCollector,feeAmt) (contracts/amo/Ramos.sol#434)\n\t- protocolToken.safeTransfer(address(_poolHelper),joinAmountIn) (contracts/amo/Ramos.sol#440)\n\t- bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,protocolTokenBalancerPoolIndex,protocolToken) (contracts/amo/Ramos.sol#443-447)\n\tEvent emitted after the call(s):\n\t- RebalanceDownJoin(protocolTokenAmountIn,bptTokensStaked,feeAmt) (contracts/amo/Ramos.sol#448)\n", - "markdown": "Reentrancy in [Ramos.rebalanceDownJoin(uint256,uint256)](contracts/amo/Ramos.sol#L421-L455):\n\tExternal calls:\n\t- [tokenVault.borrowProtocolToken(protocolTokenAmountIn,address(this))](contracts/amo/Ramos.sol#L429)\n\t- [protocolToken.safeTransfer(feeCollector,feeAmt)](contracts/amo/Ramos.sol#L434)\n\t- [protocolToken.safeTransfer(address(_poolHelper),joinAmountIn)](contracts/amo/Ramos.sol#L440)\n\t- [bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,protocolTokenBalancerPoolIndex,protocolToken)](contracts/amo/Ramos.sol#L443-L447)\n\tEvent emitted after the call(s):\n\t- [RebalanceDownJoin(protocolTokenAmountIn,bptTokensStaked,feeAmt)](contracts/amo/Ramos.sol#L448)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L421-L455", - "id": "4ad07f927825c05b798c66409225ee0120c0e24658c057fada6ad9f73180240c", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "rebalanceUpExit", - "source_mapping": { - "start": 11847, - "length": 1435, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpExit(uint256,uint256)" - } - }, - { - "type": "node", - "name": "amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper))", - "source_mapping": { - "start": 12270, - "length": 70, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 299 - ], - "starting_column": 9, - "ending_column": 79 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpExit", - "source_mapping": { - "start": 11847, - "length": 1435, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "protocolTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minProtocolTokenOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,protocolTokenBalancerPoolIndex,treasuryPriceIndex(),protocolToken)", - "source_mapping": { - "start": 12397, - "length": 279, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpExit", - "source_mapping": { - "start": 11847, - "length": 1435, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "protocolToken.safeTransfer(feeCollector,feeAmt)", - "source_mapping": { - "start": 12875, - "length": 48, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 311 - ], - "starting_column": 13, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpExit", - "source_mapping": { - "start": 11847, - "length": 1435, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RebalanceUpExit(bptAmountIn,protocolTokenAmountOut,feeAmt)", - "source_mapping": { - "start": 13091, - "length": 65, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 318 - ], - "starting_column": 9, - "ending_column": 74 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpExit", - "source_mapping": { - "start": 11847, - "length": 1435, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpExit(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "daiJoin.exit(address(this),daiAmount)", + "source_mapping": { + "start": 11630, + "length": 38, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [280], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" } - ], - "description": "Reentrancy in Ramos.rebalanceUpExit(uint256,uint256) (contracts/amo/Ramos.sol#290-322):\n\tExternal calls:\n\t- amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper)) (contracts/amo/Ramos.sol#299)\n\t- protocolTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minProtocolTokenOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,protocolTokenBalancerPoolIndex,treasuryPriceIndex(),protocolToken) (contracts/amo/Ramos.sol#302-306)\n\t- protocolToken.safeTransfer(feeCollector,feeAmt) (contracts/amo/Ramos.sol#311)\n\tEvent emitted after the call(s):\n\t- RebalanceUpExit(bptAmountIn,protocolTokenAmountOut,feeAmt) (contracts/amo/Ramos.sol#318)\n", - "markdown": "Reentrancy in [Ramos.rebalanceUpExit(uint256,uint256)](contracts/amo/Ramos.sol#L290-L322):\n\tExternal calls:\n\t- [amoStaking.withdrawAndUnwrap(bptAmountIn,false,address(_poolHelper))](contracts/amo/Ramos.sol#L299)\n\t- [protocolTokenAmountOut = _poolHelper.exitPool(bptAmountIn,minProtocolTokenOut,rebalancePercentageBoundLow,rebalancePercentageBoundUp,postRebalanceDelta,protocolTokenBalancerPoolIndex,treasuryPriceIndex(),protocolToken)](contracts/amo/Ramos.sol#L302-L306)\n\t- [protocolToken.safeTransfer(feeCollector,feeAmt)](contracts/amo/Ramos.sol#L311)\n\tEvent emitted after the call(s):\n\t- [RebalanceUpExit(bptAmountIn,protocolTokenAmountOut,feeAmt)](contracts/amo/Ramos.sol#L318)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L290-L322", - "id": "d1e3e7511c959f3f2562cee5d162c6238b1fb8ed8584ca23b92437d2651d74cd", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "rebalanceUpJoin", - "source_mapping": { - "start": 15897, - "length": 1496, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpJoin(uint256,uint256)" - } - }, - { - "type": "node", - "name": "tokenVault.borrowQuoteToken(quoteTokenAmountIn,address(this))", - "source_mapping": { - "start": 16247, - "length": 62, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 384 - ], - "starting_column": 9, - "ending_column": 71 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpJoin", - "source_mapping": { - "start": 15897, - "length": 1496, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.safeTransfer(feeCollector,feeAmt)", - "source_mapping": { - "start": 16502, - "length": 45, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 389 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpJoin", - "source_mapping": { - "start": 15897, - "length": 1496, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "quoteToken.safeTransfer(address(_poolHelper),joinAmountIn)", - "source_mapping": { - "start": 16743, - "length": 59, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 395 - ], - "starting_column": 9, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpJoin", - "source_mapping": { - "start": 15897, - "length": 1496, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,quoteToken)", - "source_mapping": { - "start": 16852, - "length": 250, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 398, - 399, - 400, - 401 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpJoin", - "source_mapping": { - "start": 15897, - "length": 1496, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RebalanceUpJoin(quoteTokenAmountIn,bptTokensStaked,feeAmt)", - "source_mapping": { - "start": 17112, - "length": 65, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 402 - ], - "starting_column": 9, - "ending_column": 74 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "rebalanceUpJoin", - "source_mapping": { - "start": 15897, - "length": 1496, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "rebalanceUpJoin(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "DaiWithdrawn(daiAmount)", + "source_mapping": { + "start": 11678, + "length": 28, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [281], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" } - ], - "description": "Reentrancy in Ramos.rebalanceUpJoin(uint256,uint256) (contracts/amo/Ramos.sol#376-409):\n\tExternal calls:\n\t- tokenVault.borrowQuoteToken(quoteTokenAmountIn,address(this)) (contracts/amo/Ramos.sol#384)\n\t- quoteToken.safeTransfer(feeCollector,feeAmt) (contracts/amo/Ramos.sol#389)\n\t- quoteToken.safeTransfer(address(_poolHelper),joinAmountIn) (contracts/amo/Ramos.sol#395)\n\t- bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,quoteToken) (contracts/amo/Ramos.sol#398-401)\n\tEvent emitted after the call(s):\n\t- RebalanceUpJoin(quoteTokenAmountIn,bptTokensStaked,feeAmt) (contracts/amo/Ramos.sol#402)\n", - "markdown": "Reentrancy in [Ramos.rebalanceUpJoin(uint256,uint256)](contracts/amo/Ramos.sol#L376-L409):\n\tExternal calls:\n\t- [tokenVault.borrowQuoteToken(quoteTokenAmountIn,address(this))](contracts/amo/Ramos.sol#L384)\n\t- [quoteToken.safeTransfer(feeCollector,feeAmt)](contracts/amo/Ramos.sol#L389)\n\t- [quoteToken.safeTransfer(address(_poolHelper),joinAmountIn)](contracts/amo/Ramos.sol#L395)\n\t- [bptTokensStaked = _poolHelper.joinPool(joinAmountIn,minBptOut,rebalancePercentageBoundUp,rebalancePercentageBoundLow,treasuryPriceIndex(),postRebalanceDelta,1 - protocolTokenBalancerPoolIndex,quoteToken)](contracts/amo/Ramos.sol#L398-L401)\n\tEvent emitted after the call(s):\n\t- [RebalanceUpJoin(quoteTokenAmountIn,bptTokensStaked,feeAmt)](contracts/amo/Ramos.sol#L402)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L376-L409", - "id": "0f3416b0e7e6449ff33b7394396c4bf724c482fcbb9d305e03fcb53aaee726ac", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "recoverToGnosis", - "source_mapping": { - "start": 5325, - "length": 237, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 142, - 143, - 144, - 145 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "recoverToGnosis(address,uint256)" - } - }, - { - "type": "node", - "name": "IERC20(token).safeTransfer(gnosisSafeWallet,amount)", - "source_mapping": { - "start": 5419, - "length": 52, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 9, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "recoverToGnosis", - "source_mapping": { - "start": 5325, - "length": 237, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 142, - 143, - 144, - 145 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "recoverToGnosis(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "CommonEventsAndErrors.TokenRecovered(gnosisSafeWallet,token,amount)", - "source_mapping": { - "start": 5481, - "length": 74, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 144 - ], - "starting_column": 9, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "recoverToGnosis", - "source_mapping": { - "start": 5325, - "length": 237, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 142, - 143, - 144, - 145 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GnosisStrategy", - "source_mapping": { - "start": 584, - "length": 6684, - "filename_relative": "contracts/v2/strategies/GnosisStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/GnosisStrategy.sol", - "filename_short": "contracts/v2/strategies/GnosisStrategy.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "recoverToGnosis(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + }, + { + "type": "node", + "name": "_dsrWithdrawal(sharesAmount,requestedAmount)", + "source_mapping": { + "start": 11366, + "length": 45, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [273], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "trvWithdraw", + "source_mapping": { + "start": 10561, + "length": 947, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "trvWithdraw(uint256)" } - ], - "description": "Reentrancy in GnosisStrategy.recoverToGnosis(address,uint256) (contracts/v2/strategies/GnosisStrategy.sol#142-145):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(gnosisSafeWallet,amount) (contracts/v2/strategies/GnosisStrategy.sol#143)\n\tEvent emitted after the call(s):\n\t- CommonEventsAndErrors.TokenRecovered(gnosisSafeWallet,token,amount) (contracts/v2/strategies/GnosisStrategy.sol#144)\n", - "markdown": "Reentrancy in [GnosisStrategy.recoverToGnosis(address,uint256)](contracts/v2/strategies/GnosisStrategy.sol#L142-L145):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(gnosisSafeWallet,amount)](contracts/v2/strategies/GnosisStrategy.sol#L143)\n\tEvent emitted after the call(s):\n\t- [CommonEventsAndErrors.TokenRecovered(gnosisSafeWallet,token,amount)](contracts/v2/strategies/GnosisStrategy.sol#L144)\n", - "first_markdown_element": "contracts/v2/strategies/GnosisStrategy.sol#L142-L145", - "id": "d9bd0a33246588c83983d63975a9ce55470568eeff09e037f055b8e7122562e2", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "recoverToken", - "source_mapping": { - "start": 2334, - "length": 206, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "recoverToken(address,address,uint256)" - } - }, - { - "type": "node", - "name": "IERC20(token).safeTransfer(to,amount)", - "source_mapping": { - "start": 2446, - "length": 38, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "recoverToken", - "source_mapping": { - "start": 2334, - "length": 206, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "recoverToken(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RecoveredToken(token,to,amount)", - "source_mapping": { - "start": 2495, - "length": 38, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 70 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "recoverToken", - "source_mapping": { - "start": 2334, - "length": 206, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AuraStaking", - "source_mapping": { - "start": 604, - "length": 5204, - "filename_relative": "contracts/amo/AuraStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/AuraStaking.sol", - "filename_short": "contracts/amo/AuraStaking.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "recoverToken(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in DsrBaseStrategy.trvWithdraw(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#257-276):\n\tExternal calls:\n\t- (daiAvailable,chi,sharesAvailable) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#264)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\t- _dsrWithdrawal(sharesAmount,requestedAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#273)\n\t\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#279)\n\t\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\t\t- _dsrWithdrawal(sharesAmount,requestedAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#273)\n", + "markdown": "Reentrancy in [DsrBaseStrategy.trvWithdraw(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L257-L276):\n\tExternal calls:\n\t- [(daiAvailable,chi,sharesAvailable) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L264)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\t- [_dsrWithdrawal(sharesAmount,requestedAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L273)\n\t\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L279)\n\t\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\t\t- [_dsrWithdrawal(sharesAmount,requestedAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L273)\n", + "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L257-L276", + "id": "0a4c8e86f10e88f7cdc66960b0dd281291f86c22d1d8b92e68909c1d477f23ac", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "withdrawAndRepay", + "source_mapping": { + "start": 8510, + "length": 786, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in AuraStaking.recoverToken(address,address,uint256) (contracts/amo/AuraStaking.sol#67-71):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(to,amount) (contracts/amo/AuraStaking.sol#68)\n\tEvent emitted after the call(s):\n\t- RecoveredToken(token,to,amount) (contracts/amo/AuraStaking.sol#70)\n", - "markdown": "Reentrancy in [AuraStaking.recoverToken(address,address,uint256)](contracts/amo/AuraStaking.sol#L67-L71):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(to,amount)](contracts/amo/AuraStaking.sol#L68)\n\tEvent emitted after the call(s):\n\t- [RecoveredToken(token,to,amount)](contracts/amo/AuraStaking.sol#L70)\n", - "first_markdown_element": "contracts/amo/AuraStaking.sol#L67-L71", - "id": "721f7e4ea8f943fb92b4b72846f0042313e2b5e55c2edcd24d2ab5f7aab87665", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "recoverToken", - "source_mapping": { - "start": 11012, - "length": 197, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 274, - 275, - 276, - 277, - 278 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "recoverToken(address,address,uint256)" - } - }, - { - "type": "node", - "name": "IERC20(token).safeTransfer(to,amount)", - "source_mapping": { - "start": 11115, - "length": 38, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 275 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "recoverToken", - "source_mapping": { - "start": 11012, - "length": 197, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 274, - 275, - 276, - 277, - 278 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "recoverToken(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RecoveredToken(token,to,amount)", - "source_mapping": { - "start": 11164, - "length": 38, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 277 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "recoverToken", - "source_mapping": { - "start": 11012, - "length": 197, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 274, - 275, - 276, - 277, - 278 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "recoverToken(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "withdrawAndRepay(uint256)" + } + }, + { + "type": "node", + "name": "(daiAvailable,chi) = _checkpointDaiBalance()", + "source_mapping": { + "start": 8691, + "length": 63, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [217], + "starting_column": 9, + "ending_column": 72 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawAndRepay", + "source_mapping": { + "start": 8510, + "length": 786, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "withdrawAndRepay(uint256)" } - ], - "description": "Reentrancy in Ramos.recoverToken(address,address,uint256) (contracts/amo/Ramos.sol#274-278):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(to,amount) (contracts/amo/Ramos.sol#275)\n\tEvent emitted after the call(s):\n\t- RecoveredToken(token,to,amount) (contracts/amo/Ramos.sol#277)\n", - "markdown": "Reentrancy in [Ramos.recoverToken(address,address,uint256)](contracts/amo/Ramos.sol#L274-L278):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(to,amount)](contracts/amo/Ramos.sol#L275)\n\tEvent emitted after the call(s):\n\t- [RecoveredToken(token,to,amount)](contracts/amo/Ramos.sol#L277)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L274-L278", - "id": "a57f15edd93bacbeb09bc6f5cb3cd1b4540b96d74dac7b8b25c22b16adc633ed", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "removeCollateral", - "source_mapping": { - "start": 6498, - "length": 1031, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeCollateral(uint128,address)" - } - }, - { - "type": "node", - "name": "circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)", - "source_mapping": { - "start": 7012, - "length": 118, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 173, - 174, - 175, - 176, - 177 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeCollateral", - "source_mapping": { - "start": 6498, - "length": 1031, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeCollateral(uint128,address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "CollateralRemoved(msg.sender,recipient,amount)", - "source_mapping": { - "start": 7320, - "length": 53, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 182 - ], - "starting_column": 9, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeCollateral", - "source_mapping": { - "start": 6498, - "length": 1031, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeCollateral(uint128,address)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "chi = pot.drip()", + "source_mapping": { + "start": 5567, + "length": 60, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [142], + "starting_column": 9, + "ending_column": 69 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_checkpointChi", + "source_mapping": { + "start": 5446, + "length": 188, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [140, 141, 142, 143], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_checkpointChi()" } - ], - "description": "Reentrancy in TempleLineOfCredit.removeCollateral(uint128,address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#166-190):\n\tExternal calls:\n\t- circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#173-177)\n\tEvent emitted after the call(s):\n\t- CollateralRemoved(msg.sender,recipient,amount) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#182)\n", - "markdown": "Reentrancy in [TempleLineOfCredit.removeCollateral(uint128,address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190):\n\tExternal calls:\n\t- [circuitBreakerProxy.preCheck(address(templeToken),msg.sender,amount)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L173-L177)\n\tEvent emitted after the call(s):\n\t- [CollateralRemoved(msg.sender,recipient,amount)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L182)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166-L190", - "id": "995ebae8f6668f6a1d468a923e261df6e2cd441ac86401c473cc53982585815d", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 22535, - "length": 1408, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - }, - { - "type": "node", - "name": "amoStaking.withdrawAndUnwrap(bptIn,false,address(this))", - "source_mapping": { - "start": 23216, - "length": 57, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 541 - ], - "starting_column": 9, - "ending_column": 66 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 22535, - "length": 1408, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "balancerVault.exitPool(balancerPoolId,address(this),address(this),request)", - "source_mapping": { - "start": 23283, - "length": 77, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 542 - ], - "starting_column": 9, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 22535, - "length": 1408, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_tokenVault.repayProtocolToken(protocolTokenAmount)", - "source_mapping": { - "start": 23691, - "length": 51, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 551 - ], - "starting_column": 13, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 22535, - "length": 1408, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "_tokenVault.repayQuoteToken(quoteTokenAmount)", - "source_mapping": { - "start": 23803, - "length": 45, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 555 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 22535, - "length": 1408, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "LiquidityRemoved(quoteTokenAmount,protocolTokenAmount,bptIn)", - "source_mapping": { - "start": 23869, - "length": 67, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 558 - ], - "starting_column": 9, - "ending_column": 76 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 22535, - "length": 1408, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Ramos", - "source_mapping": { - "start": 1893, - "length": 24333, - "filename_relative": "contracts/amo/Ramos.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amo/Ramos.sol", - "filename_short": "contracts/amo/Ramos.sol", - "is_dependency": false, - "lines": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_dsrWithdrawal(sharesAmount,withdrawalAmount)", + "source_mapping": { + "start": 9026, + "length": 46, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [222], + "starting_column": 9, + "ending_column": 55 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawAndRepay", + "source_mapping": { + "start": 8510, + "length": 786, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "withdrawAndRepay(uint256)" } - ], - "description": "Reentrancy in Ramos.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256) (contracts/amo/Ramos.sol#522-559):\n\tExternal calls:\n\t- amoStaking.withdrawAndUnwrap(bptIn,false,address(this)) (contracts/amo/Ramos.sol#541)\n\t- balancerVault.exitPool(balancerPoolId,address(this),address(this),request) (contracts/amo/Ramos.sol#542)\n\t- _tokenVault.repayProtocolToken(protocolTokenAmount) (contracts/amo/Ramos.sol#551)\n\t- _tokenVault.repayQuoteToken(quoteTokenAmount) (contracts/amo/Ramos.sol#555)\n\tEvent emitted after the call(s):\n\t- LiquidityRemoved(quoteTokenAmount,protocolTokenAmount,bptIn) (contracts/amo/Ramos.sol#558)\n", - "markdown": "Reentrancy in [Ramos.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)](contracts/amo/Ramos.sol#L522-L559):\n\tExternal calls:\n\t- [amoStaking.withdrawAndUnwrap(bptIn,false,address(this))](contracts/amo/Ramos.sol#L541)\n\t- [balancerVault.exitPool(balancerPoolId,address(this),address(this),request)](contracts/amo/Ramos.sol#L542)\n\t- [_tokenVault.repayProtocolToken(protocolTokenAmount)](contracts/amo/Ramos.sol#L551)\n\t- [_tokenVault.repayQuoteToken(quoteTokenAmount)](contracts/amo/Ramos.sol#L555)\n\tEvent emitted after the call(s):\n\t- [LiquidityRemoved(quoteTokenAmount,protocolTokenAmount,bptIn)](contracts/amo/Ramos.sol#L558)\n", - "first_markdown_element": "contracts/amo/Ramos.sol#L522-L559", - "id": "bed2c1413f14f1f0f387a42599c99dbade4f123d221d53142cc235119defc33d", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 8140, - "length": 365, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 209, - 210, - 211, - 212, - 213, - 214, - 215 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - }, - { - "type": "node", - "name": "(quoteTokenAmount,protocolTokenAmount) = ramos.removeLiquidity(_requestData,_bptAmount)", - "source_mapping": { - "start": 8277, - "length": 140, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 210, - 211, - 212, - 213 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 8140, - "length": 365, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 209, - 210, - 211, - 212, - 213, - 214, - 215 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RemoveLiquidity(quoteTokenAmount,protocolTokenAmount,_bptAmount)", - "source_mapping": { - "start": 8427, - "length": 71, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 214 - ], - "starting_column": 9, - "ending_column": 80 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "removeLiquidity", - "source_mapping": { - "start": 8140, - "length": 365, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 209, - 210, - 211, - 212, - 213, - 214, - 215 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RamosStrategy", - "source_mapping": { - "start": 1131, - "length": 9320, - "filename_relative": "contracts/v2/strategies/RamosStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/RamosStrategy.sol", - "filename_short": "contracts/v2/strategies/RamosStrategy.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "pot.exit(sharesAmount)", + "source_mapping": { + "start": 11598, + "length": 22, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [279], + "starting_column": 9, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" } - ], - "description": "Reentrancy in RamosStrategy.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256) (contracts/v2/strategies/RamosStrategy.sol#209-215):\n\tExternal calls:\n\t- (quoteTokenAmount,protocolTokenAmount) = ramos.removeLiquidity(_requestData,_bptAmount) (contracts/v2/strategies/RamosStrategy.sol#210-213)\n\tEvent emitted after the call(s):\n\t- RemoveLiquidity(quoteTokenAmount,protocolTokenAmount,_bptAmount) (contracts/v2/strategies/RamosStrategy.sol#214)\n", - "markdown": "Reentrancy in [RamosStrategy.removeLiquidity(IBalancerVault.ExitPoolRequest,uint256)](contracts/v2/strategies/RamosStrategy.sol#L209-L215):\n\tExternal calls:\n\t- [(quoteTokenAmount,protocolTokenAmount) = ramos.removeLiquidity(_requestData,_bptAmount)](contracts/v2/strategies/RamosStrategy.sol#L210-L213)\n\tEvent emitted after the call(s):\n\t- [RemoveLiquidity(quoteTokenAmount,protocolTokenAmount,_bptAmount)](contracts/v2/strategies/RamosStrategy.sol#L214)\n", - "first_markdown_element": "contracts/v2/strategies/RamosStrategy.sol#L209-L215", - "id": "7c31093def50156c36e632afd1bdd7b3c7f967dee0aff539f837b6a8448615ae", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 875, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - }, - { - "type": "node", - "name": "daiToken.safeApprove(previousTrv,0)", - "source_mapping": { - "start": 16002, - "length": 36, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 394 - ], - "starting_column": 13, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 875, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "daiToken.safeApprove(_trv,0)", - "source_mapping": { - "start": 16249, - "length": 29, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 402 - ], - "starting_column": 13, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 875, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "daiToken.safeIncreaseAllowance(_trv,type()(uint256).max)", - "source_mapping": { - "start": 16292, - "length": 55, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 403 - ], - "starting_column": 13, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 875, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "TlcStrategySet(newTlcStrategy,_trv)", - "source_mapping": { - "start": 16368, - "length": 41, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 406 - ], - "starting_column": 9, - "ending_column": 50 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTlcStrategy", - "source_mapping": { - "start": 15688, - "length": 875, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTlcStrategy(address)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "daiJoin.exit(address(this),daiAmount)", + "source_mapping": { + "start": 11630, + "length": 38, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [280], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "DaiWithdrawn(daiAmount)", + "source_mapping": { + "start": 11678, + "length": 28, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [281], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + }, + { + "type": "node", + "name": "_dsrWithdrawal(sharesAmount,withdrawalAmount)", + "source_mapping": { + "start": 9026, + "length": 46, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [222], + "starting_column": 9, + "ending_column": 55 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawAndRepay", + "source_mapping": { + "start": 8510, + "length": 786, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "withdrawAndRepay(uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in DsrBaseStrategy.withdrawAndRepay(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#214-227):\n\tExternal calls:\n\t- (daiAvailable,chi) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#217)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\t- _dsrWithdrawal(sharesAmount,withdrawalAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#222)\n\t\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#279)\n\t\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\t\t- _dsrWithdrawal(sharesAmount,withdrawalAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#222)\n", + "markdown": "Reentrancy in [DsrBaseStrategy.withdrawAndRepay(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L214-L227):\n\tExternal calls:\n\t- [(daiAvailable,chi) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L217)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\t- [_dsrWithdrawal(sharesAmount,withdrawalAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L222)\n\t\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L279)\n\t\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\t\t- [_dsrWithdrawal(sharesAmount,withdrawalAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L222)\n", + "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L214-L227", + "id": "38cb9f382307934e51255ca3f7d7f51604f44bc46a20af75d7f155182cf9bb95", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "withdrawAndRepayAll", + "source_mapping": { + "start": 9413, + "length": 465, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [232, 233, 234, 235, 236, 237, 238, 239, 240], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "withdrawAndRepayAll()" + } + }, + { + "type": "node", + "name": "(daiAvailable,sharesAvailable) = _checkpointDaiBalance()", + "source_mapping": { + "start": 9500, + "length": 74, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [233], + "starting_column": 9, + "ending_column": 83 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawAndRepayAll", + "source_mapping": { + "start": 9413, + "length": 465, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [232, 233, 234, 235, 236, 237, 238, 239, 240], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "withdrawAndRepayAll()" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "chi = pot.drip()", + "source_mapping": { + "start": 5567, + "length": 60, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [142], + "starting_column": 9, + "ending_column": 69 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_checkpointChi", + "source_mapping": { + "start": 5446, + "length": 188, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [140, 141, 142, 143], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_checkpointChi()" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_dsrWithdrawal(sharesAvailable,daiAvailable)", + "source_mapping": { + "start": 9584, + "length": 45, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [234], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawAndRepayAll", + "source_mapping": { + "start": 9413, + "length": 465, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [232, 233, 234, 235, 236, 237, 238, 239, 240], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "withdrawAndRepayAll()" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "pot.exit(sharesAmount)", + "source_mapping": { + "start": 11598, + "length": 22, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [279], + "starting_column": 9, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "daiJoin.exit(address(this),daiAmount)", + "source_mapping": { + "start": 11630, + "length": 38, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [280], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "DaiWithdrawn(daiAmount)", + "source_mapping": { + "start": 11678, + "length": 28, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [281], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_dsrWithdrawal", + "source_mapping": { + "start": 11514, + "length": 199, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [278, 279, 280, 281, 282], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_dsrWithdrawal(uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "event" } + }, + { + "type": "node", + "name": "_dsrWithdrawal(sharesAvailable,daiAvailable)", + "source_mapping": { + "start": 9584, + "length": 45, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [234], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawAndRepayAll", + "source_mapping": { + "start": 9413, + "length": 465, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [232, 233, 234, 235, 236, 237, 238, 239, 240], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "withdrawAndRepayAll()" + } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in DsrBaseStrategy.withdrawAndRepayAll() (contracts/v2/strategies/DsrBaseStrategy.sol#232-240):\n\tExternal calls:\n\t- (daiAvailable,sharesAvailable) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#233)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\t- _dsrWithdrawal(sharesAvailable,daiAvailable) (contracts/v2/strategies/DsrBaseStrategy.sol#234)\n\t\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#279)\n\t\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\t\t- _dsrWithdrawal(sharesAvailable,daiAvailable) (contracts/v2/strategies/DsrBaseStrategy.sol#234)\n", + "markdown": "Reentrancy in [DsrBaseStrategy.withdrawAndRepayAll()](contracts/v2/strategies/DsrBaseStrategy.sol#L232-L240):\n\tExternal calls:\n\t- [(daiAvailable,sharesAvailable) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L233)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\t- [_dsrWithdrawal(sharesAvailable,daiAvailable)](contracts/v2/strategies/DsrBaseStrategy.sol#L234)\n\t\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L279)\n\t\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\t\t- [_dsrWithdrawal(sharesAvailable,daiAvailable)](contracts/v2/strategies/DsrBaseStrategy.sol#L234)\n", + "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L232-L240", + "id": "4ba8e3c4596e10b0920e312a0648a8fa3ef9456ad23cffc62074dc7f78916f68", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" + } + }, + { + "type": "node", + "name": "_safeTransfer(_token0,to,amount0)", + "source_mapping": { + "start": 6213, + "length": 35, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [131], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_safeTransfer(_token1,to,amount1)", + "source_mapping": { + "start": 6258, + "length": 35, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [132], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" } - ], - "description": "Reentrancy in TempleLineOfCredit.setTlcStrategy(address) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#386-410):\n\tExternal calls:\n\t- daiToken.safeApprove(previousTrv,0) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#394)\n\t- daiToken.safeApprove(_trv,0) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#402)\n\t- daiToken.safeIncreaseAllowance(_trv,type()(uint256).max) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#403)\n\tEvent emitted after the call(s):\n\t- TlcStrategySet(newTlcStrategy,_trv) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#406)\n", - "markdown": "Reentrancy in [TempleLineOfCredit.setTlcStrategy(address)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410):\n\tExternal calls:\n\t- [daiToken.safeApprove(previousTrv,0)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)\n\t- [daiToken.safeApprove(_trv,0)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L402)\n\t- [daiToken.safeIncreaseAllowance(_trv,type()(uint256).max)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L403)\n\tEvent emitted after the call(s):\n\t- [TlcStrategySet(newTlcStrategy,_trv)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L406)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L386-L410", - "id": "324c860350f8b013fe53e7e16c80f3c65372dc79913460521e82a2cd87c23a45", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "shutdown", - "source_mapping": { - "start": 11822, - "length": 1632, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shutdown(address)" - } - }, - { - "type": "node", - "name": "_outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy)", - "source_mapping": { - "start": 12499, - "length": 64, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 296 - ], - "starting_column": 13, - "ending_column": 77 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shutdown", - "source_mapping": { - "start": 11822, - "length": 1632, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shutdown(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "StrategyRemoved(strategy)", - "source_mapping": { - "start": 13162, - "length": 30, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 312 - ], - "starting_column": 9, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shutdown", - "source_mapping": { - "start": 11822, - "length": 1632, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shutdown(address)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "StrategyShutdownCreditAndDebt({strategy:strategy,token:address(_token),outstandingCredit:credits[_token],outstandingDebt:_outstandingDebt})", - "source_mapping": { - "start": 12577, - "length": 231, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 297, - 298, - 299, - 300, - 301, - 302 - ], - "starting_column": 13, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shutdown", - "source_mapping": { - "start": 11822, - "length": 1632, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shutdown(address)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "Burn(msg.sender,amount0,amount1,to)", + "source_mapping": { + "start": 6485, + "length": 43, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [137], + "starting_column": 9, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" } - ], - "description": "Reentrancy in TreasuryReservesVault.shutdown(address) (contracts/v2/TreasuryReservesVault.sol#283-319):\n\tExternal calls:\n\t- _outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy) (contracts/v2/TreasuryReservesVault.sol#296)\n\tEvent emitted after the call(s):\n\t- StrategyRemoved(strategy) (contracts/v2/TreasuryReservesVault.sol#312)\n\t- StrategyShutdownCreditAndDebt({strategy:strategy,token:address(_token),outstandingCredit:credits[_token],outstandingDebt:_outstandingDebt}) (contracts/v2/TreasuryReservesVault.sol#297-302)\n", - "markdown": "Reentrancy in [TreasuryReservesVault.shutdown(address)](contracts/v2/TreasuryReservesVault.sol#L283-L319):\n\tExternal calls:\n\t- [_outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy)](contracts/v2/TreasuryReservesVault.sol#L296)\n\tEvent emitted after the call(s):\n\t- [StrategyRemoved(strategy)](contracts/v2/TreasuryReservesVault.sol#L312)\n\t- [StrategyShutdownCreditAndDebt({strategy:strategy,token:address(_token),outstandingCredit:credits[_token],outstandingDebt:_outstandingDebt})](contracts/v2/TreasuryReservesVault.sol#L297-L302)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L283-L319", - "id": "3770a3cd34d6db65975f14acb9170e3663edac9809964808500e613a8be2344e", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "trvWithdraw", - "source_mapping": { - "start": 10560, - "length": 947, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "trvWithdraw(uint256)" - } - }, - { - "type": "node", - "name": "(daiAvailable,chi,sharesAvailable) = _checkpointDaiBalance()", - "source_mapping": { - "start": 11010, - "length": 86, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 264 - ], - "starting_column": 9, - "ending_column": 95 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "trvWithdraw", - "source_mapping": { - "start": 10560, - "length": 947, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "trvWithdraw(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5566, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 142 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5445, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAmount,requestedAmount)", - "source_mapping": { - "start": 11365, - "length": 45, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 273 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "trvWithdraw", - "source_mapping": { - "start": 10560, - "length": 947, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "trvWithdraw(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "pot.exit(sharesAmount)", - "source_mapping": { - "start": 11597, - "length": 22, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "daiJoin.exit(address(this),daiAmount)", - "source_mapping": { - "start": 11629, - "length": 38, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 280 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiWithdrawn(daiAmount)", - "source_mapping": { - "start": 11677, - "length": 28, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 281 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAmount,requestedAmount)", - "source_mapping": { - "start": 11365, - "length": 45, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 273 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "trvWithdraw", - "source_mapping": { - "start": 10560, - "length": 947, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "trvWithdraw(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + }, + { + "type": "node", + "name": "Sync(reserve0,reserve1)", + "source_mapping": { + "start": 3918, + "length": 29, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [92], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" } - ], - "description": "Reentrancy in DsrBaseStrategy.trvWithdraw(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#257-276):\n\tExternal calls:\n\t- (daiAvailable,chi,sharesAvailable) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#264)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\t- _dsrWithdrawal(sharesAmount,requestedAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#273)\n\t\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#279)\n\t\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\t\t- _dsrWithdrawal(sharesAmount,requestedAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#273)\n", - "markdown": "Reentrancy in [DsrBaseStrategy.trvWithdraw(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L257-L276):\n\tExternal calls:\n\t- [(daiAvailable,chi,sharesAvailable) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L264)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\t- [_dsrWithdrawal(sharesAmount,requestedAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L273)\n\t\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L279)\n\t\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\t\t- [_dsrWithdrawal(sharesAmount,requestedAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L273)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L257-L276", - "id": "0a4c8e86f10e88f7cdc66960b0dd281291f86c22d1d8b92e68909c1d477f23ac", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawAndRepay", - "source_mapping": { - "start": 8509, - "length": 786, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepay(uint256)" - } - }, - { - "type": "node", - "name": "(daiAvailable,chi) = _checkpointDaiBalance()", - "source_mapping": { - "start": 8690, - "length": 63, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 217 - ], - "starting_column": 9, - "ending_column": 72 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndRepay", - "source_mapping": { - "start": 8509, - "length": 786, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepay(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5566, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 142 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5445, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAmount,withdrawalAmount)", - "source_mapping": { - "start": 9025, - "length": 46, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 222 - ], - "starting_column": 9, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndRepay", - "source_mapping": { - "start": 8509, - "length": 786, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepay(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "pot.exit(sharesAmount)", - "source_mapping": { - "start": 11597, - "length": 22, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "daiJoin.exit(address(this),daiAmount)", - "source_mapping": { - "start": 11629, - "length": 38, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 280 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiWithdrawn(daiAmount)", - "source_mapping": { - "start": 11677, - "length": 28, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 281 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAmount,withdrawalAmount)", - "source_mapping": { - "start": 9025, - "length": 46, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 222 - ], - "starting_column": 9, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndRepay", - "source_mapping": { - "start": 8509, - "length": 786, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepay(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + }, + { + "type": "node", + "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "source_mapping": { + "start": 6426, + "length": 49, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [136], + "starting_column": 9, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "burn", + "source_mapping": { + "start": 5241, + "length": 1294, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "burn(address)" } - ], - "description": "Reentrancy in DsrBaseStrategy.withdrawAndRepay(uint256) (contracts/v2/strategies/DsrBaseStrategy.sol#214-227):\n\tExternal calls:\n\t- (daiAvailable,chi) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#217)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\t- _dsrWithdrawal(sharesAmount,withdrawalAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#222)\n\t\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#279)\n\t\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\t\t- _dsrWithdrawal(sharesAmount,withdrawalAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#222)\n", - "markdown": "Reentrancy in [DsrBaseStrategy.withdrawAndRepay(uint256)](contracts/v2/strategies/DsrBaseStrategy.sol#L214-L227):\n\tExternal calls:\n\t- [(daiAvailable,chi) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L217)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\t- [_dsrWithdrawal(sharesAmount,withdrawalAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L222)\n\t\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L279)\n\t\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\t\t- [_dsrWithdrawal(sharesAmount,withdrawalAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L222)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L214-L227", - "id": "38cb9f382307934e51255ca3f7d7f51604f44bc46a20af75d7f155182cf9bb95", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawAndRepayAll", - "source_mapping": { - "start": 9412, - "length": 465, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepayAll()" - } - }, - { - "type": "node", - "name": "(daiAvailable,sharesAvailable) = _checkpointDaiBalance()", - "source_mapping": { - "start": 9499, - "length": 74, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 233 - ], - "starting_column": 9, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndRepayAll", - "source_mapping": { - "start": 9412, - "length": 465, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepayAll()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "chi = pot.drip()", - "source_mapping": { - "start": 5566, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 142 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5445, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAvailable,daiAvailable)", - "source_mapping": { - "start": 9583, - "length": 45, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 234 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndRepayAll", - "source_mapping": { - "start": 9412, - "length": 465, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepayAll()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "pot.exit(sharesAmount)", - "source_mapping": { - "start": 11597, - "length": 22, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 279 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "daiJoin.exit(address(this),daiAmount)", - "source_mapping": { - "start": 11629, - "length": 38, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 280 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DaiWithdrawn(daiAmount)", - "source_mapping": { - "start": 11677, - "length": 28, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 281 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_dsrWithdrawal", - "source_mapping": { - "start": 11513, - "length": 199, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 278, - 279, - 280, - 281, - 282 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_dsrWithdrawal(uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - }, - { - "type": "node", - "name": "_dsrWithdrawal(sharesAvailable,daiAvailable)", - "source_mapping": { - "start": 9583, - "length": 45, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 234 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawAndRepayAll", - "source_mapping": { - "start": 9412, - "length": 465, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdrawAndRepayAll()" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TempleUniswapV2Pair.burn(address) (contracts/amm/TempleUniswapV2Pair.sol#118-138):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0) (contracts/amm/TempleUniswapV2Pair.sol#131)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- _safeTransfer(_token1,to,amount1) (contracts/amm/TempleUniswapV2Pair.sol#132)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\tEvent emitted after the call(s):\n\t- Burn(msg.sender,amount0,amount1,to) (contracts/amm/TempleUniswapV2Pair.sol#137)\n\t- Sync(reserve0,reserve1) (contracts/amm/TempleUniswapV2Pair.sol#92)\n\t\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#136)\n", + "markdown": "Reentrancy in [TempleUniswapV2Pair.burn(address)](contracts/amm/TempleUniswapV2Pair.sol#L118-L138):\n\tExternal calls:\n\t- [_safeTransfer(_token0,to,amount0)](contracts/amm/TempleUniswapV2Pair.sol#L131)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [_safeTransfer(_token1,to,amount1)](contracts/amm/TempleUniswapV2Pair.sol#L132)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\tEvent emitted after the call(s):\n\t- [Burn(msg.sender,amount0,amount1,to)](contracts/amm/TempleUniswapV2Pair.sol#L137)\n\t- [Sync(reserve0,reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L92)\n\t\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L136)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L118-L138", + "id": "127a57c69604f2ba16f4cd02c712486dff1968238a1c69ead2035920584207c2", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Reentrancy in DsrBaseStrategy.withdrawAndRepayAll() (contracts/v2/strategies/DsrBaseStrategy.sol#232-240):\n\tExternal calls:\n\t- (daiAvailable,sharesAvailable) = _checkpointDaiBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#233)\n\t\t- chi = pot.drip() (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n\t- _dsrWithdrawal(sharesAvailable,daiAvailable) (contracts/v2/strategies/DsrBaseStrategy.sol#234)\n\t\t- pot.exit(sharesAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#279)\n\t\t- daiJoin.exit(address(this),daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#280)\n\tEvent emitted after the call(s):\n\t- DaiWithdrawn(daiAmount) (contracts/v2/strategies/DsrBaseStrategy.sol#281)\n\t\t- _dsrWithdrawal(sharesAvailable,daiAvailable) (contracts/v2/strategies/DsrBaseStrategy.sol#234)\n", - "markdown": "Reentrancy in [DsrBaseStrategy.withdrawAndRepayAll()](contracts/v2/strategies/DsrBaseStrategy.sol#L232-L240):\n\tExternal calls:\n\t- [(daiAvailable,sharesAvailable) = _checkpointDaiBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L233)\n\t\t- [chi = pot.drip()](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n\t- [_dsrWithdrawal(sharesAvailable,daiAvailable)](contracts/v2/strategies/DsrBaseStrategy.sol#L234)\n\t\t- [pot.exit(sharesAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L279)\n\t\t- [daiJoin.exit(address(this),daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L280)\n\tEvent emitted after the call(s):\n\t- [DaiWithdrawn(daiAmount)](contracts/v2/strategies/DsrBaseStrategy.sol#L281)\n\t\t- [_dsrWithdrawal(sharesAvailable,daiAvailable)](contracts/v2/strategies/DsrBaseStrategy.sol#L234)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L232-L240", - "id": "4ba8e3c4596e10b0920e312a0648a8fa3ef9456ad23cffc62074dc7f78916f68", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "adhocPayment", - "source_mapping": { - "start": 2841, - "length": 284, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 83, - 84, - 85, - 86, - 87, - 88 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPayments", - "source_mapping": { - "start": 247, - "length": 3130, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "adhocPayment(address,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransfer(TEMPLE,_to,_amount)", - "source_mapping": { - "start": 3038, - "length": 44, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 86 - ], - "starting_column": 9, - "ending_column": 53 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "adhocPayment", - "source_mapping": { - "start": 2841, - "length": 284, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 83, - 84, - 85, - 86, - 87, - 88 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPayments", - "source_mapping": { - "start": 247, - "length": 3130, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "adhocPayment(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Claimed(_to,_amount)", - "source_mapping": { - "start": 3092, - "length": 26, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 87 - ], - "starting_column": 9, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "adhocPayment", - "source_mapping": { - "start": 2841, - "length": 284, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 83, - 84, - 85, - 86, - 87, - 88 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPayments", - "source_mapping": { - "start": 247, - "length": 3130, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "adhocPayment(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "swap(uint256,uint256,address,bytes)" + } + }, + { + "type": "node", + "name": "_safeTransfer(_token0,to,amount0Out)", + "source_mapping": { + "start": 7388, + "length": 38, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [153], + "starting_column": 29, + "ending_column": 67 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" } - ], - "description": "Reentrancy in TempleTeamPayments.adhocPayment(address,uint256) (contracts/admin/TempleTeamPayments.sol#83-88):\n\tExternal calls:\n\t- SafeERC20.safeTransfer(TEMPLE,_to,_amount) (contracts/admin/TempleTeamPayments.sol#86)\n\tEvent emitted after the call(s):\n\t- Claimed(_to,_amount) (contracts/admin/TempleTeamPayments.sol#87)\n", - "markdown": "Reentrancy in [TempleTeamPayments.adhocPayment(address,uint256)](contracts/admin/TempleTeamPayments.sol#L83-L88):\n\tExternal calls:\n\t- [SafeERC20.safeTransfer(TEMPLE,_to,_amount)](contracts/admin/TempleTeamPayments.sol#L86)\n\tEvent emitted after the call(s):\n\t- [Claimed(_to,_amount)](contracts/admin/TempleTeamPayments.sol#L87)\n", - "first_markdown_element": "contracts/admin/TempleTeamPayments.sol#L83-L88", - "id": "081d1dfdebd16cea0856cb988c13c62e2d2d6e5c3fbd25c36620643fb11a0000", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "claim", - "source_mapping": { - "start": 2480, - "length": 355, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPayments", - "source_mapping": { - "start": 247, - "length": 3130, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "claim()" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransfer(TEMPLE,msg.sender,claimable)", - "source_mapping": { - "start": 2730, - "length": 53, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 79 - ], - "starting_column": 9, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claim", - "source_mapping": { - "start": 2480, - "length": 355, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPayments", - "source_mapping": { - "start": 247, - "length": 3130, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "claim()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Claimed(msg.sender,claimable)", - "source_mapping": { - "start": 2793, - "length": 35, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 80 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claim", - "source_mapping": { - "start": 2480, - "length": 355, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPayments", - "source_mapping": { - "start": 247, - "length": 3130, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "claim()" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" } - ], - "description": "Reentrancy in TempleTeamPayments.claim() (contracts/admin/TempleTeamPayments.sol#74-81):\n\tExternal calls:\n\t- SafeERC20.safeTransfer(TEMPLE,msg.sender,claimable) (contracts/admin/TempleTeamPayments.sol#79)\n\tEvent emitted after the call(s):\n\t- Claimed(msg.sender,claimable) (contracts/admin/TempleTeamPayments.sol#80)\n", - "markdown": "Reentrancy in [TempleTeamPayments.claim()](contracts/admin/TempleTeamPayments.sol#L74-L81):\n\tExternal calls:\n\t- [SafeERC20.safeTransfer(TEMPLE,msg.sender,claimable)](contracts/admin/TempleTeamPayments.sol#L79)\n\tEvent emitted after the call(s):\n\t- [Claimed(msg.sender,claimable)](contracts/admin/TempleTeamPayments.sol#L80)\n", - "first_markdown_element": "contracts/admin/TempleTeamPayments.sol#L74-L81", - "id": "5122a045d2e21480d0560d2c58820df1a98500cfc6453d3088b53c090e7d16e3", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "claim", - "source_mapping": { - "start": 2481, - "length": 452, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsV2", - "source_mapping": { - "start": 346, - "length": 2589, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "claim(uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransfer(temple,msg.sender,_claimAmount)", - "source_mapping": { - "start": 2822, - "length": 56, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 83 - ], - "starting_column": 9, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claim", - "source_mapping": { - "start": 2481, - "length": 452, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsV2", - "source_mapping": { - "start": 346, - "length": 2589, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "claim(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Claimed(msg.sender,_claimAmount)", - "source_mapping": { - "start": 2888, - "length": 38, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 84 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claim", - "source_mapping": { - "start": 2481, - "length": 452, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsV2", - "source_mapping": { - "start": 346, - "length": 2589, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "claim(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_safeTransfer(_token1,to,amount1Out)", + "source_mapping": { + "start": 7490, + "length": 38, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [154], + "starting_column": 29, + "ending_column": 67 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" } - ], - "description": "Reentrancy in TempleTeamPaymentsV2.claim(uint256) (contracts/admin/TempleTeamPaymentsV2.sol#74-85):\n\tExternal calls:\n\t- SafeERC20.safeTransfer(temple,msg.sender,_claimAmount) (contracts/admin/TempleTeamPaymentsV2.sol#83)\n\tEvent emitted after the call(s):\n\t- Claimed(msg.sender,_claimAmount) (contracts/admin/TempleTeamPaymentsV2.sol#84)\n", - "markdown": "Reentrancy in [TempleTeamPaymentsV2.claim(uint256)](contracts/admin/TempleTeamPaymentsV2.sol#L74-L85):\n\tExternal calls:\n\t- [SafeERC20.safeTransfer(temple,msg.sender,_claimAmount)](contracts/admin/TempleTeamPaymentsV2.sol#L83)\n\tEvent emitted after the call(s):\n\t- [Claimed(msg.sender,_claimAmount)](contracts/admin/TempleTeamPaymentsV2.sol#L84)\n", - "first_markdown_element": "contracts/admin/TempleTeamPaymentsV2.sol#L74-L85", - "id": "e805076f6ba37558b2d1e1e33a36ca2141157b088d4472056b82f8af89078bb2", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "claimFor", - "source_mapping": { - "start": 2718, - "length": 611, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "claimFor(address)" - } - }, - { - "type": "node", - "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", - "source_mapping": { - "start": 3194, - "length": 56, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 91 - ], - "starting_column": 9, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claimFor", - "source_mapping": { - "start": 2718, - "length": 611, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "claimFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "RevenueClaimed(account,unclaimedScaled / SCALING_FACTOR)", - "source_mapping": { - "start": 3260, - "length": 62, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 92 - ], - "starting_column": 9, - "ending_column": 71 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claimFor", - "source_mapping": { - "start": 2718, - "length": 611, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "claimFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" } - ], - "description": "Reentrancy in TreasuryFarmingRevenue.claimFor(address) (contracts/core/TreasuryFarmingRevenue.sol#80-93):\n\tExternal calls:\n\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tEvent emitted after the call(s):\n\t- RevenueClaimed(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#92)\n", - "markdown": "Reentrancy in [TreasuryFarmingRevenue.claimFor(address)](contracts/core/TreasuryFarmingRevenue.sol#L80-L93):\n\tExternal calls:\n\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tEvent emitted after the call(s):\n\t- [RevenueClaimed(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L92)\n", - "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L80-L93", - "id": "d8563f03511a537e7bffa702571db6c52a8f76800b24690b23270dd982c4ccc2", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "createExposure", - "source_mapping": { - "start": 1322, - "length": 415, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createExposure(string,string,IERC20)" - } - }, - { - "type": "node", - "name": "exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools)", - "source_mapping": { - "start": 1526, - "length": 81, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 51 - ], - "starting_column": 9, - "ending_column": 90 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "createExposure", - "source_mapping": { - "start": 1322, - "length": 415, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createExposure(string,string,IERC20)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "CreateExposure(address(exposure),address(pools[revalToken]))", - "source_mapping": { - "start": 1664, - "length": 66, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 53 - ], - "starting_column": 9, - "ending_column": 75 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "createExposure", - "source_mapping": { - "start": 1322, - "length": 415, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createExposure(string,string,IERC20)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)", + "source_mapping": { + "start": 7593, + "length": 76, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [155], + "starting_column": 30, + "ending_column": 106 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" } - ], - "description": "Reentrancy in OpsManager.createExposure(string,string,IERC20) (contracts/core/OpsManager.sol#45-54):\n\tExternal calls:\n\t- exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools) (contracts/core/OpsManager.sol#51)\n\tEvent emitted after the call(s):\n\t- CreateExposure(address(exposure),address(pools[revalToken])) (contracts/core/OpsManager.sol#53)\n", - "markdown": "Reentrancy in [OpsManager.createExposure(string,string,IERC20)](contracts/core/OpsManager.sol#L45-L54):\n\tExternal calls:\n\t- [exposure = OpsManagerLib.createExposure(name,symbol,revalToken,pools)](contracts/core/OpsManager.sol#L51)\n\tEvent emitted after the call(s):\n\t- [CreateExposure(address(exposure),address(pools[revalToken]))](contracts/core/OpsManager.sol#L53)\n", - "first_markdown_element": "contracts/core/OpsManager.sol#L45-L54", - "id": "4c0848edc4ba02c1e3d1ebe7d87498d178e87ad8a446b774ebd37d6847435833", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "createVaultInstance", - "source_mapping": { - "start": 1960, - "length": 804, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createVaultInstance(string,string,uint256,uint256,Rational,uint256)" - } - }, - { - "type": "node", - "name": "templeExposure.setMinterState(address(vault),true)", - "source_mapping": { - "start": 2656, - "length": 51, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 87 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "createVaultInstance", - "source_mapping": { - "start": 1960, - "length": 804, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createVaultInstance(string,string,uint256,uint256,Rational,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "CreateVaultInstance(address(vault))", - "source_mapping": { - "start": 2717, - "length": 40, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 88 - ], - "starting_column": 9, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "createVaultInstance", - "source_mapping": { - "start": 1960, - "length": 804, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createVaultInstance(string,string,uint256,uint256,Rational,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "Swap(msg.sender,amount0In,amount1In,amount0Out,amount1Out,to)", + "source_mapping": { + "start": 8516, + "length": 71, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [169], + "starting_column": 9, + "ending_column": 80 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" } - ], - "description": "Reentrancy in OpsManager.createVaultInstance(string,string,uint256,uint256,Rational,uint256) (contracts/core/OpsManager.sol#63-89):\n\tExternal calls:\n\t- templeExposure.setMinterState(address(vault),true) (contracts/core/OpsManager.sol#87)\n\tEvent emitted after the call(s):\n\t- CreateVaultInstance(address(vault)) (contracts/core/OpsManager.sol#88)\n", - "markdown": "Reentrancy in [OpsManager.createVaultInstance(string,string,uint256,uint256,Rational,uint256)](contracts/core/OpsManager.sol#L63-L89):\n\tExternal calls:\n\t- [templeExposure.setMinterState(address(vault),true)](contracts/core/OpsManager.sol#L87)\n\tEvent emitted after the call(s):\n\t- [CreateVaultInstance(address(vault))](contracts/core/OpsManager.sol#L88)\n", - "first_markdown_element": "contracts/core/OpsManager.sol#L63-L89", - "id": "df955297def3da87ad4df693d7ae4b7e7f50baa97a7182d7ae0ddc97fdb09441", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "decreaseShares", - "source_mapping": { - "start": 2355, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "decreaseShares(address,uint256)" - } - }, - { - "type": "node", - "name": "claimFor(account)", - "source_mapping": { - "start": 2441, - "length": 17, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 70 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "decreaseShares", - "source_mapping": { - "start": 2355, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "decreaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", - "source_mapping": { - "start": 3194, - "length": 56, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 91 - ], - "starting_column": 9, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claimFor", - "source_mapping": { - "start": 2718, - "length": 611, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "claimFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "DecreaseShares(account,amount)", - "source_mapping": { - "start": 2614, - "length": 36, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 76 - ], - "starting_column": 9, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "decreaseShares", - "source_mapping": { - "start": 2355, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "decreaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + }, + { + "type": "node", + "name": "Sync(reserve0,reserve1)", + "source_mapping": { + "start": 3918, + "length": 29, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [92], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" } - ], - "description": "Reentrancy in TreasuryFarmingRevenue.decreaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#69-77):\n\tExternal calls:\n\t- claimFor(account) (contracts/core/TreasuryFarmingRevenue.sol#70)\n\t\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tEvent emitted after the call(s):\n\t- DecreaseShares(account,amount) (contracts/core/TreasuryFarmingRevenue.sol#76)\n", - "markdown": "Reentrancy in [TreasuryFarmingRevenue.decreaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L69-L77):\n\tExternal calls:\n\t- [claimFor(account)](contracts/core/TreasuryFarmingRevenue.sol#L70)\n\t\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tEvent emitted after the call(s):\n\t- [DecreaseShares(account,amount)](contracts/core/TreasuryFarmingRevenue.sol#L76)\n", - "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L69-L77", - "id": "10f84609b6b87bcc768aa396dd6ac6045289ca78c3cb64ee97e4437cfb7c006a", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - }, - { - "type": "node", - "name": "paymentContract.initialize(_token)", - "source_mapping": { - "start": 3274, - "length": 34, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 89 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "paymentContract.setAllocations(_dests,_allocations)", - "source_mapping": { - "start": 3318, - "length": 52, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 90 - ], - "starting_column": 9, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "paymentContract.transferOwnership(msg.sender)", - "source_mapping": { - "start": 3381, - "length": 45, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 92 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)", - "source_mapping": { - "start": 3473, - "length": 165, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 13, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "FundingDeployed(lastPaidEpoch,_dests,_allocations,address(paymentContract))", - "source_mapping": { - "start": 3715, - "length": 141, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 104, - 105, - 106, - 107, - 108, - 109 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deployPayouts", - "source_mapping": { - "start": 2818, - "length": 1078, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deployPayouts(IERC20,address[],uint256[],uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + }, + { + "type": "node", + "name": "_update(balance0,balance1,_reserve0,_reserve1)", + "source_mapping": { + "start": 8457, + "length": 49, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [168], + "starting_column": 9, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "swap", + "source_mapping": { + "start": 6644, + "length": 1950, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "swap(uint256,uint256,address,bytes)" } - ], - "description": "Reentrancy in TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256) (contracts/admin/TempleTeamPaymentsFactory.sol#79-112):\n\tExternal calls:\n\t- paymentContract.initialize(_token) (contracts/admin/TempleTeamPaymentsFactory.sol#89)\n\t- paymentContract.setAllocations(_dests,_allocations) (contracts/admin/TempleTeamPaymentsFactory.sol#90)\n\t- paymentContract.transferOwnership(msg.sender) (contracts/admin/TempleTeamPaymentsFactory.sol#92)\n\t- SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding) (contracts/admin/TempleTeamPaymentsFactory.sol#95-100)\n\tEvent emitted after the call(s):\n\t- FundingDeployed(lastPaidEpoch,_dests,_allocations,address(paymentContract)) (contracts/admin/TempleTeamPaymentsFactory.sol#104-109)\n", - "markdown": "Reentrancy in [TempleTeamPaymentsFactory.deployPayouts(IERC20,address[],uint256[],uint256)](contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112):\n\tExternal calls:\n\t- [paymentContract.initialize(_token)](contracts/admin/TempleTeamPaymentsFactory.sol#L89)\n\t- [paymentContract.setAllocations(_dests,_allocations)](contracts/admin/TempleTeamPaymentsFactory.sol#L90)\n\t- [paymentContract.transferOwnership(msg.sender)](contracts/admin/TempleTeamPaymentsFactory.sol#L92)\n\t- [SafeERC20.safeTransferFrom(_token,msg.sender,address(paymentContract),_totalFunding)](contracts/admin/TempleTeamPaymentsFactory.sol#L95-L100)\n\tEvent emitted after the call(s):\n\t- [FundingDeployed(lastPaidEpoch,_dests,_allocations,address(paymentContract))](contracts/admin/TempleTeamPaymentsFactory.sol#L104-L109)\n", - "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L79-L112", - "id": "e09076945359fed962d2ff6dfd37bfd369cd1b53e0192377da32895ae9a9f829", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "depositFor", - "source_mapping": { - "start": 7408, - "length": 773, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "depositFor(address,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(templeToken,msg.sender,vaultedTempleAccount,_amount)", - "source_mapping": { - "start": 7964, - "length": 82, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 207 - ], - "starting_column": 13, - "ending_column": 95 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositFor", - "source_mapping": { - "start": 7408, - "length": 773, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "depositFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "templeExposureToken.mint(address(this),_amount)", - "source_mapping": { - "start": 8060, - "length": 48, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 208 - ], - "starting_column": 13, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositFor", - "source_mapping": { - "start": 7408, - "length": 773, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "depositFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Deposit(_account,_amount,amountStaked)", - "source_mapping": { - "start": 8129, - "length": 45, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 211 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "depositFor", - "source_mapping": { - "start": 7408, - "length": 773, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "depositFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + }, + "additional_fields": { "underlying_type": "event" } + } + ], + "description": "Reentrancy in TempleUniswapV2Pair.swap(uint256,uint256,address,bytes) (contracts/amm/TempleUniswapV2Pair.sol#141-170):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0Out) (contracts/amm/TempleUniswapV2Pair.sol#153)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- _safeTransfer(_token1,to,amount1Out) (contracts/amm/TempleUniswapV2Pair.sol#154)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n\t- IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data) (contracts/amm/TempleUniswapV2Pair.sol#155)\n\tEvent emitted after the call(s):\n\t- Swap(msg.sender,amount0In,amount1In,amount0Out,amount1Out,to) (contracts/amm/TempleUniswapV2Pair.sol#169)\n\t- Sync(reserve0,reserve1) (contracts/amm/TempleUniswapV2Pair.sol#92)\n\t\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/amm/TempleUniswapV2Pair.sol#168)\n", + "markdown": "Reentrancy in [TempleUniswapV2Pair.swap(uint256,uint256,address,bytes)](contracts/amm/TempleUniswapV2Pair.sol#L141-L170):\n\tExternal calls:\n\t- [_safeTransfer(_token0,to,amount0Out)](contracts/amm/TempleUniswapV2Pair.sol#L153)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [_safeTransfer(_token1,to,amount1Out)](contracts/amm/TempleUniswapV2Pair.sol#L154)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n\t- [IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)](contracts/amm/TempleUniswapV2Pair.sol#L155)\n\tEvent emitted after the call(s):\n\t- [Swap(msg.sender,amount0In,amount1In,amount0Out,amount1Out,to)](contracts/amm/TempleUniswapV2Pair.sol#L169)\n\t- [Sync(reserve0,reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L92)\n\t\t- [_update(balance0,balance1,_reserve0,_reserve1)](contracts/amm/TempleUniswapV2Pair.sol#L168)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L141-L170", + "id": "702607b50ee9e5b85f6e9be980d2529af09be332237e0acb690cb814df52cb87", + "check": "reentrancy-events", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "calculateClaimable", + "source_mapping": { + "start": 1913, + "length": 581, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [ + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPayments", + "source_mapping": { + "start": 247, + "length": 3150, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Reentrancy in Vault.depositFor(address,uint256) (contracts/core/Vault.sol#196-212):\n\tExternal calls:\n\t- SafeERC20.safeTransferFrom(templeToken,msg.sender,vaultedTempleAccount,_amount) (contracts/core/Vault.sol#207)\n\t- templeExposureToken.mint(address(this),_amount) (contracts/core/Vault.sol#208)\n\tEvent emitted after the call(s):\n\t- Deposit(_account,_amount,amountStaked) (contracts/core/Vault.sol#211)\n", - "markdown": "Reentrancy in [Vault.depositFor(address,uint256)](contracts/core/Vault.sol#L196-L212):\n\tExternal calls:\n\t- [SafeERC20.safeTransferFrom(templeToken,msg.sender,vaultedTempleAccount,_amount)](contracts/core/Vault.sol#L207)\n\t- [templeExposureToken.mint(address(this),_amount)](contracts/core/Vault.sol#L208)\n\tEvent emitted after the call(s):\n\t- [Deposit(_account,_amount,amountStaked)](contracts/core/Vault.sol#L211)\n", - "first_markdown_element": "contracts/core/Vault.sol#L196-L212", - "id": "689116f4828c0f788fc592eb0a125792986e1b61e0aa46a6186d628790346b41", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "directPayouts", - "source_mapping": { - "start": 4101, - "length": 829, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "directPayouts(IERC20,address[],uint256[])" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(_token,msg.sender,dest,value)", - "source_mapping": { - "start": 4642, - "length": 59, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 133 - ], - "starting_column": 13, - "ending_column": 72 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "directPayouts", - "source_mapping": { - "start": 4101, - "length": 829, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "directPayouts(IERC20,address[],uint256[])" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "FundingPaid(lastPaidEpoch,_dests,_allocations)", - "source_mapping": { - "start": 4870, - "length": 53, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 142 - ], - "starting_column": 9, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "directPayouts", - "source_mapping": { - "start": 4101, - "length": 829, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "directPayouts(IERC20,address[],uint256[])" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "calculateClaimable(address)" + } + }, + { + "type": "node", + "name": "claimableAmount + claimed[_address] > allocation[_address]", + "source_mapping": { + "start": 2313, + "length": 58, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [68], + "starting_column": 13, + "ending_column": 71 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "calculateClaimable", + "source_mapping": { + "start": 1913, + "length": 581, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [ + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPayments", + "source_mapping": { + "start": 247, + "length": 3150, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "calculateClaimable(address)" } - ], - "description": "Reentrancy in TempleTeamPaymentsFactory.directPayouts(IERC20,address[],uint256[]) (contracts/admin/TempleTeamPaymentsFactory.sol#119-143):\n\tExternal calls:\n\t- SafeERC20.safeTransferFrom(_token,msg.sender,dest,value) (contracts/admin/TempleTeamPaymentsFactory.sol#133)\n\tEvent emitted after the call(s):\n\t- FundingPaid(lastPaidEpoch,_dests,_allocations) (contracts/admin/TempleTeamPaymentsFactory.sol#142)\n", - "markdown": "Reentrancy in [TempleTeamPaymentsFactory.directPayouts(IERC20,address[],uint256[])](contracts/admin/TempleTeamPaymentsFactory.sol#L119-L143):\n\tExternal calls:\n\t- [SafeERC20.safeTransferFrom(_token,msg.sender,dest,value)](contracts/admin/TempleTeamPaymentsFactory.sol#L133)\n\tEvent emitted after the call(s):\n\t- [FundingPaid(lastPaidEpoch,_dests,_allocations)](contracts/admin/TempleTeamPaymentsFactory.sol#L142)\n", - "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L119-L143", - "id": "6c80a1f2386bfefc5e825932ef0f67802c5f2af3857235cf886592ad9e720a6d", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "increaseShares", - "source_mapping": { - "start": 1987, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "increaseShares(address,uint256)" - } - }, - { - "type": "node", - "name": "claimFor(account)", - "source_mapping": { - "start": 2073, - "length": 17, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 57 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "increaseShares", - "source_mapping": { - "start": 1987, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "increaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "exposure.mint(account,unclaimedScaled / SCALING_FACTOR)", - "source_mapping": { - "start": 3194, - "length": 56, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 91 - ], - "starting_column": 9, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claimFor", - "source_mapping": { - "start": 2718, - "length": 611, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "claimFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "IncreaseShares(account,amount)", - "source_mapping": { - "start": 2246, - "length": 36, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 63 - ], - "starting_column": 9, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "increaseShares", - "source_mapping": { - "start": 1987, - "length": 302, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryFarmingRevenue", - "source_mapping": { - "start": 547, - "length": 3059, - "filename_relative": "contracts/core/TreasuryFarmingRevenue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/TreasuryFarmingRevenue.sol", - "filename_short": "contracts/core/TreasuryFarmingRevenue.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "increaseShares(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + } + } + ], + "description": "TempleTeamPayments.calculateClaimable(address) (contracts/admin/TempleTeamPayments.sol#57-72) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- claimableAmount + claimed[_address] > allocation[_address] (contracts/admin/TempleTeamPayments.sol#68)\n", + "markdown": "[TempleTeamPayments.calculateClaimable(address)](contracts/admin/TempleTeamPayments.sol#L57-L72) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [claimableAmount + claimed[_address] > allocation[_address]](contracts/admin/TempleTeamPayments.sol#L68)\n", + "first_markdown_element": "contracts/admin/TempleTeamPayments.sol#L57-L72", + "id": "3c50b29e16f7abe9424e2eb7ddf7dd3a9178954836a5700181e781d6cab69a90", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "claim", + "source_mapping": { + "start": 2500, + "length": 355, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [74, 75, 76, 77, 78, 79, 80, 81], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPayments", + "source_mapping": { + "start": 247, + "length": 3150, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Reentrancy in TreasuryFarmingRevenue.increaseShares(address,uint256) (contracts/core/TreasuryFarmingRevenue.sol#56-64):\n\tExternal calls:\n\t- claimFor(account) (contracts/core/TreasuryFarmingRevenue.sol#57)\n\t\t- exposure.mint(account,unclaimedScaled / SCALING_FACTOR) (contracts/core/TreasuryFarmingRevenue.sol#91)\n\tEvent emitted after the call(s):\n\t- IncreaseShares(account,amount) (contracts/core/TreasuryFarmingRevenue.sol#63)\n", - "markdown": "Reentrancy in [TreasuryFarmingRevenue.increaseShares(address,uint256)](contracts/core/TreasuryFarmingRevenue.sol#L56-L64):\n\tExternal calls:\n\t- [claimFor(account)](contracts/core/TreasuryFarmingRevenue.sol#L57)\n\t\t- [exposure.mint(account,unclaimedScaled / SCALING_FACTOR)](contracts/core/TreasuryFarmingRevenue.sol#L91)\n\tEvent emitted after the call(s):\n\t- [IncreaseShares(account,amount)](contracts/core/TreasuryFarmingRevenue.sol#L63)\n", - "first_markdown_element": "contracts/core/TreasuryFarmingRevenue.sol#L56-L64", - "id": "d4561252e63b6b2b82404c62a37f3524f0af810644056f99e52c4028a071621f", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "lockFor", - "source_mapping": { - "start": 943, - "length": 494, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LockedOGTemple", - "source_mapping": { - "start": 213, - "length": 2143, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "lockFor(address,uint256,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(OG_TEMPLE,msg.sender,address(this),_amountOGTemple)", - "source_mapping": { - "start": 1247, - "length": 111, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "lockFor", - "source_mapping": { - "start": 943, - "length": 494, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LockedOGTemple", - "source_mapping": { - "start": 213, - "length": 2143, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "lockFor(address,uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "OGTempleLocked(_staker,_amountOGTemple,_lockedUntilTimestamp)", - "source_mapping": { - "start": 1364, - "length": 68, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 52 - ], - "starting_column": 5, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "lockFor", - "source_mapping": { - "start": 943, - "length": 494, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LockedOGTemple", - "source_mapping": { - "start": 213, - "length": 2143, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "lockFor(address,uint256,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "claim()" + } + }, + { + "type": "node", + "name": "require(bool,string)(claimable > 0,TempleTeamPayments: Member has no TEMPLE to claim)", + "source_mapping": { + "start": 2622, + "length": 75, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [76], + "starting_column": 9, + "ending_column": 84 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "claim", + "source_mapping": { + "start": 2500, + "length": 355, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [74, 75, 76, 77, 78, 79, 80, 81], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleTeamPayments", + "source_mapping": { + "start": 247, + "length": 3150, + "filename_relative": "contracts/admin/TempleTeamPayments.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/admin/TempleTeamPayments.sol", + "filename_short": "contracts/admin/TempleTeamPayments.sol", + "is_dependency": false, + "lines": [ + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "claim()" } - ], - "description": "Reentrancy in LockedOGTemple.lockFor(address,uint256,uint256) (contracts/deprecated/LockedOGTemple.sol#35-53):\n\tExternal calls:\n\t- SafeERC20.safeTransferFrom(OG_TEMPLE,msg.sender,address(this),_amountOGTemple) (contracts/deprecated/LockedOGTemple.sol#46-51)\n\tEvent emitted after the call(s):\n\t- OGTempleLocked(_staker,_amountOGTemple,_lockedUntilTimestamp) (contracts/deprecated/LockedOGTemple.sol#52)\n", - "markdown": "Reentrancy in [LockedOGTemple.lockFor(address,uint256,uint256)](contracts/deprecated/LockedOGTemple.sol#L35-L53):\n\tExternal calls:\n\t- [SafeERC20.safeTransferFrom(OG_TEMPLE,msg.sender,address(this),_amountOGTemple)](contracts/deprecated/LockedOGTemple.sol#L46-L51)\n\tEvent emitted after the call(s):\n\t- [OGTempleLocked(_staker,_amountOGTemple,_lockedUntilTimestamp)](contracts/deprecated/LockedOGTemple.sol#L52)\n", - "first_markdown_element": "contracts/deprecated/LockedOGTemple.sol#L35-L53", - "id": "4230808e1cd7a4f58313604bd2841ce355116b1beb66b33f45e8990f931fb60f", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "recoverToken", - "source_mapping": { - "start": 2526, - "length": 244, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultEarlyWithdraw", - "source_mapping": { - "start": 548, - "length": 2224, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "recoverToken(address,address,uint256)" - } - }, - { - "type": "node", - "name": "IERC20(token).safeTransfer(to,amount)", - "source_mapping": { - "start": 2677, - "length": 38, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 75 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "recoverToken", - "source_mapping": { - "start": 2526, - "length": 244, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultEarlyWithdraw", - "source_mapping": { - "start": 548, - "length": 2224, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "recoverToken(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "TokenRecovered(token,to,amount)", - "source_mapping": { - "start": 2725, - "length": 38, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 76 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "recoverToken", - "source_mapping": { - "start": 2526, - "length": 244, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultEarlyWithdraw", - "source_mapping": { - "start": 548, - "length": 2224, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "recoverToken(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + } + } + ], + "description": "TempleTeamPayments.claim() (contracts/admin/TempleTeamPayments.sol#74-81) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(claimable > 0,TempleTeamPayments: Member has no TEMPLE to claim) (contracts/admin/TempleTeamPayments.sol#76)\n", + "markdown": "[TempleTeamPayments.claim()](contracts/admin/TempleTeamPayments.sol#L74-L81) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(claimable > 0,TempleTeamPayments: Member has no TEMPLE to claim)](contracts/admin/TempleTeamPayments.sol#L76)\n", + "first_markdown_element": "contracts/admin/TempleTeamPayments.sol#L74-L81", + "id": "d2cf6a934d99b6df0f4c782f92abbc6344366c44c011b9e95bdc6171398e7715", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "withdrawFor", + "source_mapping": { + "start": 3881, + "length": 543, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Reentrancy in VaultEarlyWithdraw.recoverToken(address,address,uint256) (contracts/core/VaultEarlyWithdraw.sol#73-77):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(to,amount) (contracts/core/VaultEarlyWithdraw.sol#75)\n\tEvent emitted after the call(s):\n\t- TokenRecovered(token,to,amount) (contracts/core/VaultEarlyWithdraw.sol#76)\n", - "markdown": "Reentrancy in [VaultEarlyWithdraw.recoverToken(address,address,uint256)](contracts/core/VaultEarlyWithdraw.sol#L73-L77):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(to,amount)](contracts/core/VaultEarlyWithdraw.sol#L75)\n\tEvent emitted after the call(s):\n\t- [TokenRecovered(token,to,amount)](contracts/core/VaultEarlyWithdraw.sol#L76)\n", - "first_markdown_element": "contracts/core/VaultEarlyWithdraw.sol#L73-L77", - "id": "1c3c00beda0eb4b0661cc31987f0cf4c864705a836f5da0004529d20a3b860b8", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "redeemAmount", - "source_mapping": { - "start": 3060, - "length": 296, - "filename_relative": "contracts/core/Exposure.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Exposure.sol", - "filename_short": "contracts/core/Exposure.sol", - "is_dependency": false, - "lines": [ - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Exposure", - "source_mapping": { - "start": 362, - "length": 3820, - "filename_relative": "contracts/core/Exposure.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Exposure.sol", - "filename_short": "contracts/core/Exposure.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "redeemAmount(uint256,address)" - } - }, - { - "type": "node", - "name": "liquidator.toTemple(amount,to)", - "source_mapping": { - "start": 3241, - "length": 31, - "filename_relative": "contracts/core/Exposure.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Exposure.sol", - "filename_short": "contracts/core/Exposure.sol", - "is_dependency": false, - "lines": [ - 109 - ], - "starting_column": 13, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "redeemAmount", - "source_mapping": { - "start": 3060, - "length": 296, - "filename_relative": "contracts/core/Exposure.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Exposure.sol", - "filename_short": "contracts/core/Exposure.sol", - "is_dependency": false, - "lines": [ - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Exposure", - "source_mapping": { - "start": 362, - "length": 3820, - "filename_relative": "contracts/core/Exposure.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Exposure.sol", - "filename_short": "contracts/core/Exposure.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "redeemAmount(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Redeem(address(revalToken),msg.sender,to,amount)", - "source_mapping": { - "start": 3293, - "length": 56, - "filename_relative": "contracts/core/Exposure.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Exposure.sol", - "filename_short": "contracts/core/Exposure.sol", - "is_dependency": false, - "lines": [ - 112 - ], - "starting_column": 9, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "redeemAmount", - "source_mapping": { - "start": 3060, - "length": 296, - "filename_relative": "contracts/core/Exposure.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Exposure.sol", - "filename_short": "contracts/core/Exposure.sol", - "is_dependency": false, - "lines": [ - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Exposure", - "source_mapping": { - "start": 362, - "length": 3820, - "filename_relative": "contracts/core/Exposure.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Exposure.sol", - "filename_short": "contracts/core/Exposure.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "redeemAmount(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)" + } + }, + { + "type": "node", + "name": "require(bool,string)(block.timestamp <= deadline,Vault: expired deadline)", + "source_mapping": { + "start": 3999, + "length": 63, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [97], + "starting_column": 9, + "ending_column": 72 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawFor", + "source_mapping": { + "start": 3881, + "length": 543, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)" } - ], - "description": "Reentrancy in Exposure.redeemAmount(uint256,address) (contracts/core/Exposure.sol#104-113):\n\tExternal calls:\n\t- liquidator.toTemple(amount,to) (contracts/core/Exposure.sol#109)\n\tEvent emitted after the call(s):\n\t- Redeem(address(revalToken),msg.sender,to,amount) (contracts/core/Exposure.sol#112)\n", - "markdown": "Reentrancy in [Exposure.redeemAmount(uint256,address)](contracts/core/Exposure.sol#L104-L113):\n\tExternal calls:\n\t- [liquidator.toTemple(amount,to)](contracts/core/Exposure.sol#L109)\n\tEvent emitted after the call(s):\n\t- [Redeem(address(revalToken),msg.sender,to,amount)](contracts/core/Exposure.sol#L112)\n", - "first_markdown_element": "contracts/core/Exposure.sol#L104-L113", - "id": "5c348eea3fa61ccb6c1609a61dfbf2ea3d76c031d344e46e4a98a0d17d2298c4", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "stakeFor", - "source_mapping": { - "start": 4887, - "length": 624, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "stakeFor(address,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(TEMPLE,msg.sender,address(this),_amountTemple)", - "source_mapping": { - "start": 5291, - "length": 76, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 131 - ], - "starting_column": 9, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "stakeFor", - "source_mapping": { - "start": 4887, - "length": 624, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "stakeFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "OG_TEMPLE.mint(_staker,amountOgTemple)", - "source_mapping": { - "start": 5377, - "length": 39, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 132 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "stakeFor", - "source_mapping": { - "start": 4887, - "length": 624, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "stakeFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "StakeCompleted(_staker,_amountTemple,0)", - "source_mapping": { - "start": 5426, - "length": 46, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 133 - ], - "starting_column": 9, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "stakeFor", - "source_mapping": { - "start": 4887, - "length": 624, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "stakeFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + } + } + ], + "description": "Vault.withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32) (contracts/core/Vault.sol#96-106) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(block.timestamp <= deadline,Vault: expired deadline) (contracts/core/Vault.sol#97)\n", + "markdown": "[Vault.withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)](contracts/core/Vault.sol#L96-L106) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(block.timestamp <= deadline,Vault: expired deadline)](contracts/core/Vault.sol#L97)\n", + "first_markdown_element": "contracts/core/Vault.sol#L96-L106", + "id": "f068d8a851d72d0e6aff89812664a80d33b8197abca1bbd0f276ffb2d0976be9", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "inEnterExitWindow", + "source_mapping": { + "start": 5308, + "length": 569, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [136, 137, 138, 139, 140, 141, 142, 143, 144], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Reentrancy in TempleStaking.stakeFor(address,uint256) (contracts/deprecated/TempleStaking.sol#123-136):\n\tExternal calls:\n\t- SafeERC20.safeTransferFrom(TEMPLE,msg.sender,address(this),_amountTemple) (contracts/deprecated/TempleStaking.sol#131)\n\t- OG_TEMPLE.mint(_staker,amountOgTemple) (contracts/deprecated/TempleStaking.sol#132)\n\tEvent emitted after the call(s):\n\t- StakeCompleted(_staker,_amountTemple,0) (contracts/deprecated/TempleStaking.sol#133)\n", - "markdown": "Reentrancy in [TempleStaking.stakeFor(address,uint256)](contracts/deprecated/TempleStaking.sol#L123-L136):\n\tExternal calls:\n\t- [SafeERC20.safeTransferFrom(TEMPLE,msg.sender,address(this),_amountTemple)](contracts/deprecated/TempleStaking.sol#L131)\n\t- [OG_TEMPLE.mint(_staker,amountOgTemple)](contracts/deprecated/TempleStaking.sol#L132)\n\tEvent emitted after the call(s):\n\t- [StakeCompleted(_staker,_amountTemple,0)](contracts/deprecated/TempleStaking.sol#L133)\n", - "first_markdown_element": "contracts/deprecated/TempleStaking.sol#L123-L136", - "id": "b18c05c7e4e0c35ebb87b7dbe818caa384c5e387f2a89d762dad2c9429dad39c", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "unstake", - "source_mapping": { - "start": 5711, - "length": 576, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "unstake(uint256)" - } - }, - { - "type": "node", - "name": "OG_TEMPLE.burnFrom(msg.sender,_amountOgTemple)", - "source_mapping": { - "start": 6017, - "length": 47, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 150 - ], - "starting_column": 9, - "ending_column": 56 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "unstake", - "source_mapping": { - "start": 5711, - "length": 576, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "unstake(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "SafeERC20.safeIncreaseAllowance(TEMPLE,address(EXIT_QUEUE),unstakeBalanceTemple)", - "source_mapping": { - "start": 6074, - "length": 82, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 151 - ], - "starting_column": 9, - "ending_column": 91 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "unstake", - "source_mapping": { - "start": 5711, - "length": 576, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "unstake(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "EXIT_QUEUE.join(msg.sender,unstakeBalanceTemple)", - "source_mapping": { - "start": 6166, - "length": 49, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 152 - ], - "starting_column": 9, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "unstake", - "source_mapping": { - "start": 5711, - "length": 576, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "unstake(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "UnstakeCompleted(msg.sender,_amountOgTemple)", - "source_mapping": { - "start": 6226, - "length": 50, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 154 - ], - "starting_column": 9, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "unstake", - "source_mapping": { - "start": 5711, - "length": 576, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "unstake(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "inEnterExitWindow()" + } + }, + { + "type": "node", + "name": "block.timestamp < firstPeriodStartTimestamp", + "source_mapping": { + "start": 5408, + "length": 43, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [137], + "starting_column": 13, + "ending_column": 56 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "inEnterExitWindow", + "source_mapping": { + "start": 5308, + "length": 569, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [136, 137, 138, 139, 140, 141, 142, 143, 144], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "inEnterExitWindow()" + } + } + } + }, + { + "type": "node", + "name": "inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp", + "source_mapping": { + "start": 5732, + "length": 138, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [143], + "starting_column": 9, + "ending_column": 147 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "inEnterExitWindow", + "source_mapping": { + "start": 5308, + "length": 569, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [136, 137, 138, 139, 140, 141, 142, 143, 144], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Vault", + "source_mapping": { + "start": 1182, + "length": 7299, + "filename_relative": "contracts/core/Vault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Vault.sol", + "filename_short": "contracts/core/Vault.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "inEnterExitWindow()" + } + } + } + } + ], + "description": "Vault.inEnterExitWindow() (contracts/core/Vault.sol#136-144) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp < firstPeriodStartTimestamp (contracts/core/Vault.sol#137)\n\t- inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp (contracts/core/Vault.sol#143)\n", + "markdown": "[Vault.inEnterExitWindow()](contracts/core/Vault.sol#L136-L144) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp < firstPeriodStartTimestamp](contracts/core/Vault.sol#L137)\n\t- [inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp](contracts/core/Vault.sol#L143)\n", + "first_markdown_element": "contracts/core/Vault.sol#L136-L144", + "id": "98e47a8cf8913fe5f00789bc8f3a53fa3c1e0e9b8b92efcdb9b5ef3830020ac1", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "withdrawFor", + "source_mapping": { + "start": 1642, + "length": 627, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "LockedOGTemple", + "source_mapping": { + "start": 213, + "length": 2143, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawFor(address,uint256)" + } + }, + { + "type": "node", + "name": "require(bool,string)(lockedEntries[_idx].LockedUntilTimestamp < block.timestamp,Specified entry is still locked)", + "source_mapping": { + "start": 1867, + "length": 120, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [69, 70, 71, 72], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawFor", + "source_mapping": { + "start": 1642, + "length": 627, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "LockedOGTemple", + "source_mapping": { + "start": 213, + "length": 2143, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawFor(address,uint256)" } - ], - "description": "Reentrancy in TempleStaking.unstake(uint256) (contracts/deprecated/TempleStaking.sol#144-155):\n\tExternal calls:\n\t- OG_TEMPLE.burnFrom(msg.sender,_amountOgTemple) (contracts/deprecated/TempleStaking.sol#150)\n\t- SafeERC20.safeIncreaseAllowance(TEMPLE,address(EXIT_QUEUE),unstakeBalanceTemple) (contracts/deprecated/TempleStaking.sol#151)\n\t- EXIT_QUEUE.join(msg.sender,unstakeBalanceTemple) (contracts/deprecated/TempleStaking.sol#152)\n\tEvent emitted after the call(s):\n\t- UnstakeCompleted(msg.sender,_amountOgTemple) (contracts/deprecated/TempleStaking.sol#154)\n", - "markdown": "Reentrancy in [TempleStaking.unstake(uint256)](contracts/deprecated/TempleStaking.sol#L144-L155):\n\tExternal calls:\n\t- [OG_TEMPLE.burnFrom(msg.sender,_amountOgTemple)](contracts/deprecated/TempleStaking.sol#L150)\n\t- [SafeERC20.safeIncreaseAllowance(TEMPLE,address(EXIT_QUEUE),unstakeBalanceTemple)](contracts/deprecated/TempleStaking.sol#L151)\n\t- [EXIT_QUEUE.join(msg.sender,unstakeBalanceTemple)](contracts/deprecated/TempleStaking.sol#L152)\n\tEvent emitted after the call(s):\n\t- [UnstakeCompleted(msg.sender,_amountOgTemple)](contracts/deprecated/TempleStaking.sol#L154)\n", - "first_markdown_element": "contracts/deprecated/TempleStaking.sol#L144-L155", - "id": "325fc57e8f6e1cecb7323feddec38c5b7507dd1c8d9a046aa8b2c362a40ad09b", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 1870, - "length": 562, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultEarlyWithdraw", - "source_mapping": { - "start": 548, - "length": 2224, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address,uint256)" - } - }, - { - "type": "node", - "name": "IERC20(_vault).safeTransferFrom(msg.sender,owner(),_templeAmount)", - "source_mapping": { - "start": 2162, - "length": 67, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 62 - ], - "starting_column": 9, - "ending_column": 76 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 1870, - "length": 562, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultEarlyWithdraw", - "source_mapping": { - "start": 548, - "length": 2224, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "templeToken.safeTransfer(msg.sender,_templeAmount)", - "source_mapping": { - "start": 2318, - "length": 51, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 1870, - "length": 562, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultEarlyWithdraw", - "source_mapping": { - "start": 548, - "length": 2224, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "EarlyWithdraw(msg.sender,_templeAmount)", - "source_mapping": { - "start": 2380, - "length": 45, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 67 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 1870, - "length": 562, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultEarlyWithdraw", - "source_mapping": { - "start": 548, - "length": 2224, - "filename_relative": "contracts/core/VaultEarlyWithdraw.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultEarlyWithdraw.sol", - "filename_short": "contracts/core/VaultEarlyWithdraw.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + } + } + ], + "description": "LockedOGTemple.withdrawFor(address,uint256) (contracts/deprecated/LockedOGTemple.sol#62-81) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(lockedEntries[_idx].LockedUntilTimestamp < block.timestamp,Specified entry is still locked) (contracts/deprecated/LockedOGTemple.sol#69-72)\n", + "markdown": "[LockedOGTemple.withdrawFor(address,uint256)](contracts/deprecated/LockedOGTemple.sol#L62-L81) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(lockedEntries[_idx].LockedUntilTimestamp < block.timestamp,Specified entry is still locked)](contracts/deprecated/LockedOGTemple.sol#L69-L72)\n", + "first_markdown_element": "contracts/deprecated/LockedOGTemple.sol#L62-L81", + "id": "87a3b425d06a0ad7aa92a349ed04204eb047ebb07373cbfbcf3ed5aaaf25be67", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "relayedSetEndorsementsFor", + "source_mapping": { + "start": 3547, + "length": 759, + "filename_relative": "contracts/governance/ElderElection.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/ElderElection.sol", + "filename_short": "contracts/governance/ElderElection.sol", + "is_dependency": false, + "lines": [ + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ElderElection", + "source_mapping": { + "start": 906, + "length": 4629, + "filename_relative": "contracts/governance/ElderElection.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/ElderElection.sol", + "filename_short": "contracts/governance/ElderElection.sol", + "is_dependency": false, + "lines": [ + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Reentrancy in VaultEarlyWithdraw.withdraw(address,uint256) (contracts/core/VaultEarlyWithdraw.sol#57-68):\n\tExternal calls:\n\t- IERC20(_vault).safeTransferFrom(msg.sender,owner(),_templeAmount) (contracts/core/VaultEarlyWithdraw.sol#62)\n\t- templeToken.safeTransfer(msg.sender,_templeAmount) (contracts/core/VaultEarlyWithdraw.sol#65)\n\tEvent emitted after the call(s):\n\t- EarlyWithdraw(msg.sender,_templeAmount) (contracts/core/VaultEarlyWithdraw.sol#67)\n", - "markdown": "Reentrancy in [VaultEarlyWithdraw.withdraw(address,uint256)](contracts/core/VaultEarlyWithdraw.sol#L57-L68):\n\tExternal calls:\n\t- [IERC20(_vault).safeTransferFrom(msg.sender,owner(),_templeAmount)](contracts/core/VaultEarlyWithdraw.sol#L62)\n\t- [templeToken.safeTransfer(msg.sender,_templeAmount)](contracts/core/VaultEarlyWithdraw.sol#L65)\n\tEvent emitted after the call(s):\n\t- [EarlyWithdraw(msg.sender,_templeAmount)](contracts/core/VaultEarlyWithdraw.sol#L67)\n", - "first_markdown_element": "contracts/core/VaultEarlyWithdraw.sol#L57-L68", - "id": "7a41d062356aa90302a9b5d0829abad146259b6d909dd1702764a586f2839691", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 8505, - "length": 349, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,address,uint256)" - } - }, - { - "type": "node", - "name": "templeExposureToken.redeemAmount(_amount,_to)", - "source_mapping": { - "start": 8759, - "length": 46, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 227 - ], - "starting_column": 9, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 8505, - "length": 349, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "Withdraw(_account,_amount)", - "source_mapping": { - "start": 8815, - "length": 32, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 228 - ], - "starting_column": 9, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 8505, - "length": 349, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)" + } + }, + { + "type": "node", + "name": "block.timestamp > req.deadline", + "source_mapping": { + "start": 4001, + "length": 30, + "filename_relative": "contracts/governance/ElderElection.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/ElderElection.sol", + "filename_short": "contracts/governance/ElderElection.sol", + "is_dependency": false, + "lines": [124], + "starting_column": 13, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "relayedSetEndorsementsFor", + "source_mapping": { + "start": 3547, + "length": 759, + "filename_relative": "contracts/governance/ElderElection.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/ElderElection.sol", + "filename_short": "contracts/governance/ElderElection.sol", + "is_dependency": false, + "lines": [ + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ElderElection", + "source_mapping": { + "start": 906, + "length": 4629, + "filename_relative": "contracts/governance/ElderElection.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/ElderElection.sol", + "filename_short": "contracts/governance/ElderElection.sol", + "is_dependency": false, + "lines": [ + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)" } - ], - "description": "Reentrancy in Vault.withdrawFor(address,address,uint256) (contracts/core/Vault.sol#220-229):\n\tExternal calls:\n\t- templeExposureToken.redeemAmount(_amount,_to) (contracts/core/Vault.sol#227)\n\tEvent emitted after the call(s):\n\t- Withdraw(_account,_amount) (contracts/core/Vault.sol#228)\n", - "markdown": "Reentrancy in [Vault.withdrawFor(address,address,uint256)](contracts/core/Vault.sol#L220-L229):\n\tExternal calls:\n\t- [templeExposureToken.redeemAmount(_amount,_to)](contracts/core/Vault.sol#L227)\n\tEvent emitted after the call(s):\n\t- [Withdraw(_account,_amount)](contracts/core/Vault.sol#L228)\n", - "first_markdown_element": "contracts/core/Vault.sol#L220-L229", - "id": "63e868ac379538e3598eed469ba9a28458891a3aec02e3895802a5953d73a01a", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 1642, - "length": 627, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LockedOGTemple", - "source_mapping": { - "start": 213, - "length": 2143, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransfer(OG_TEMPLE,_staker,entry.BalanceOGTemple)", - "source_mapping": { - "start": 2140, - "length": 65, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 79 - ], - "starting_column": 5, - "ending_column": 70 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 1642, - "length": 627, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LockedOGTemple", - "source_mapping": { - "start": 213, - "length": 2143, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "OGTempleWithdraw(_staker,entry.BalanceOGTemple)", - "source_mapping": { - "start": 2211, - "length": 53, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 80 - ], - "starting_column": 5, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 1642, - "length": 627, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LockedOGTemple", - "source_mapping": { - "start": 213, - "length": 2143, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + } + } + ], + "description": "ElderElection.relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes) (contracts/governance/ElderElection.sol#112-129) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > req.deadline (contracts/governance/ElderElection.sol#124)\n", + "markdown": "[ElderElection.relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)](contracts/governance/ElderElection.sol#L112-L129) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > req.deadline](contracts/governance/ElderElection.sol#L124)\n", + "first_markdown_element": "contracts/governance/ElderElection.sol#L112-L129", + "id": "4f2e3008715f5b7ded6a3edbca5b15d9bd701fe712b26dc0b8f0cf235e35a1ef", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_initBaseCache", + "source_mapping": { + "start": 26049, + "length": 748, + "filename_relative": "contracts/v2/TempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TempleDebtToken.sol", + "filename_short": "contracts/v2/TempleDebtToken.sol", + "is_dependency": false, + "lines": [ + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleDebtToken", + "source_mapping": { + "start": 2202, + "length": 30641, + "filename_relative": "contracts/v2/TempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TempleDebtToken.sol", + "filename_short": "contracts/v2/TempleDebtToken.sol", + "is_dependency": false, + "lines": [ + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, + 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, + 778, 779, 780, 781, 782 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Reentrancy in LockedOGTemple.withdrawFor(address,uint256) (contracts/deprecated/LockedOGTemple.sol#62-81):\n\tExternal calls:\n\t- SafeERC20.safeTransfer(OG_TEMPLE,_staker,entry.BalanceOGTemple) (contracts/deprecated/LockedOGTemple.sol#79)\n\tEvent emitted after the call(s):\n\t- OGTempleWithdraw(_staker,entry.BalanceOGTemple) (contracts/deprecated/LockedOGTemple.sol#80)\n", - "markdown": "Reentrancy in [LockedOGTemple.withdrawFor(address,uint256)](contracts/deprecated/LockedOGTemple.sol#L62-L81):\n\tExternal calls:\n\t- [SafeERC20.safeTransfer(OG_TEMPLE,_staker,entry.BalanceOGTemple)](contracts/deprecated/LockedOGTemple.sol#L79)\n\tEvent emitted after the call(s):\n\t- [OGTempleWithdraw(_staker,entry.BalanceOGTemple)](contracts/deprecated/LockedOGTemple.sol#L80)\n", - "first_markdown_element": "contracts/deprecated/LockedOGTemple.sol#L62-L81", - "id": "1121dbdb9cb432f782fa1dcd86b226568d78c9cf57bb807ccdc10360eed217f4", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawToken", - "source_mapping": { - "start": 1781, - "length": 248, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 58, - 59, - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawToken(IERC20,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransfer(_token,msg.sender,_amount)", - "source_mapping": { - "start": 1916, - "length": 51, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 60 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawToken", - "source_mapping": { - "start": 1781, - "length": 248, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 58, - 59, - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawToken(IERC20,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "TokenRecovered(address(_token),_amount)", - "source_mapping": { - "start": 1977, - "length": 45, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawToken", - "source_mapping": { - "start": 1781, - "length": 248, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 58, - 59, - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsFactory", - "source_mapping": { - "start": 279, - "length": 4653, - "filename_relative": "contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsFactory.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsFactory.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawToken(IERC20,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + }, + "signature": "_initBaseCache(TempleDebtToken.BaseCache)" + } + }, + { + "type": "node", + "name": "_timeElapsed > 0", + "source_mapping": { + "start": 26435, + "length": 16, + "filename_relative": "contracts/v2/TempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TempleDebtToken.sol", + "filename_short": "contracts/v2/TempleDebtToken.sol", + "is_dependency": false, + "lines": [607], + "starting_column": 13, + "ending_column": 29 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_initBaseCache", + "source_mapping": { + "start": 26049, + "length": 748, + "filename_relative": "contracts/v2/TempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TempleDebtToken.sol", + "filename_short": "contracts/v2/TempleDebtToken.sol", + "is_dependency": false, + "lines": [ + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleDebtToken", + "source_mapping": { + "start": 2202, + "length": 30641, + "filename_relative": "contracts/v2/TempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TempleDebtToken.sol", + "filename_short": "contracts/v2/TempleDebtToken.sol", + "is_dependency": false, + "lines": [ + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, + 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, + 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_initBaseCache(TempleDebtToken.BaseCache)" } - ], - "description": "Reentrancy in TempleTeamPaymentsFactory.withdrawToken(IERC20,uint256) (contracts/admin/TempleTeamPaymentsFactory.sol#58-62):\n\tExternal calls:\n\t- SafeERC20.safeTransfer(_token,msg.sender,_amount) (contracts/admin/TempleTeamPaymentsFactory.sol#60)\n\tEvent emitted after the call(s):\n\t- TokenRecovered(address(_token),_amount) (contracts/admin/TempleTeamPaymentsFactory.sol#61)\n", - "markdown": "Reentrancy in [TempleTeamPaymentsFactory.withdrawToken(IERC20,uint256)](contracts/admin/TempleTeamPaymentsFactory.sol#L58-L62):\n\tExternal calls:\n\t- [SafeERC20.safeTransfer(_token,msg.sender,_amount)](contracts/admin/TempleTeamPaymentsFactory.sol#L60)\n\tEvent emitted after the call(s):\n\t- [TokenRecovered(address(_token),_amount)](contracts/admin/TempleTeamPaymentsFactory.sol#L61)\n", - "first_markdown_element": "contracts/admin/TempleTeamPaymentsFactory.sol#L58-L62", - "id": "953d8875749802563ce4b05772559dd5c6f58bf7e3ad4f1c24b9968cf0977dca", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawToken", - "source_mapping": { - "start": 1910, - "length": 248, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61, - 62, - 63 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsV2", - "source_mapping": { - "start": 346, - "length": 2589, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawToken(IERC20,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransfer(_token,msg.sender,_amount)", - "source_mapping": { - "start": 2045, - "length": 51, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawToken", - "source_mapping": { - "start": 1910, - "length": 248, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61, - 62, - 63 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsV2", - "source_mapping": { - "start": 346, - "length": 2589, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawToken(IERC20,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "TokenRecovered(address(_token),_amount)", - "source_mapping": { - "start": 2106, - "length": 45, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 62 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawToken", - "source_mapping": { - "start": 1910, - "length": 248, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61, - 62, - 63 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPaymentsV2", - "source_mapping": { - "start": 346, - "length": 2589, - "filename_relative": "contracts/admin/TempleTeamPaymentsV2.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPaymentsV2.sol", - "filename_short": "contracts/admin/TempleTeamPaymentsV2.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawToken(IERC20,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } + } + } + } + ], + "description": "TempleDebtToken._initBaseCache(TempleDebtToken.BaseCache) (contracts/v2/TempleDebtToken.sol#597-617) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _timeElapsed > 0 (contracts/v2/TempleDebtToken.sol#607)\n", + "markdown": "[TempleDebtToken._initBaseCache(TempleDebtToken.BaseCache)](contracts/v2/TempleDebtToken.sol#L597-L617) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_timeElapsed > 0](contracts/v2/TempleDebtToken.sol#L607)\n", + "first_markdown_element": "contracts/v2/TempleDebtToken.sol#L597-L617", + "id": "31468fb88b544bfa40953f9c670145ae2d6cc30a857f141027542b78efe5314e", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_initDebtorCache", + "source_mapping": { + "start": 28507, + "length": 2281, + "filename_relative": "contracts/v2/TempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TempleDebtToken.sol", + "filename_short": "contracts/v2/TempleDebtToken.sol", + "is_dependency": false, + "lines": [ + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleDebtToken", + "source_mapping": { + "start": 2202, + "length": 30641, + "filename_relative": "contracts/v2/TempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TempleDebtToken.sol", + "filename_short": "contracts/v2/TempleDebtToken.sol", + "is_dependency": false, + "lines": [ + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, + 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, + 778, 779, 780, 781, 782 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Reentrancy in TempleTeamPaymentsV2.withdrawToken(IERC20,uint256) (contracts/admin/TempleTeamPaymentsV2.sol#59-63):\n\tExternal calls:\n\t- SafeERC20.safeTransfer(_token,msg.sender,_amount) (contracts/admin/TempleTeamPaymentsV2.sol#61)\n\tEvent emitted after the call(s):\n\t- TokenRecovered(address(_token),_amount) (contracts/admin/TempleTeamPaymentsV2.sol#62)\n", - "markdown": "Reentrancy in [TempleTeamPaymentsV2.withdrawToken(IERC20,uint256)](contracts/admin/TempleTeamPaymentsV2.sol#L59-L63):\n\tExternal calls:\n\t- [SafeERC20.safeTransfer(_token,msg.sender,_amount)](contracts/admin/TempleTeamPaymentsV2.sol#L61)\n\tEvent emitted after the call(s):\n\t- [TokenRecovered(address(_token),_amount)](contracts/admin/TempleTeamPaymentsV2.sol#L62)\n", - "first_markdown_element": "contracts/admin/TempleTeamPaymentsV2.sol#L59-L63", - "id": "1448ab1692e2240869b3f86449f76a8cb3919b98c18052b582afb147fffce7f0", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - }, - { - "type": "node", - "name": "timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0", - "source_mapping": { - "start": 3460, - "length": 51, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 84 - ], - "starting_column": 13, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_update", - "source_mapping": { - "start": 3107, - "length": 847, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_update(uint256,uint256,uint112,uint112)" - } - } - } + }, + "signature": "_initDebtorCache(TempleDebtToken.BaseCache,ITempleDebtToken.Debtor,TempleDebtToken.DebtorCache,bool)" + } + }, + { + "type": "node", + "name": "_timeElapsed > 0", + "source_mapping": { + "start": 29667, + "length": 16, + "filename_relative": "contracts/v2/TempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TempleDebtToken.sol", + "filename_short": "contracts/v2/TempleDebtToken.sol", + "is_dependency": false, + "lines": [703], + "starting_column": 13, + "ending_column": 29 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_initDebtorCache", + "source_mapping": { + "start": 28507, + "length": 2281, + "filename_relative": "contracts/v2/TempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TempleDebtToken.sol", + "filename_short": "contracts/v2/TempleDebtToken.sol", + "is_dependency": false, + "lines": [ + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleDebtToken", + "source_mapping": { + "start": 2202, + "length": 30641, + "filename_relative": "contracts/v2/TempleDebtToken.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TempleDebtToken.sol", + "filename_short": "contracts/v2/TempleDebtToken.sol", + "is_dependency": false, + "lines": [ + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, + 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, + 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_initDebtorCache(TempleDebtToken.BaseCache,ITempleDebtToken.Debtor,TempleDebtToken.DebtorCache,bool)" } - ], - "description": "TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0 (contracts/amm/TempleUniswapV2Pair.sol#84)\n", - "markdown": "[TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0](contracts/amm/TempleUniswapV2Pair.sol#L84)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L80-L93", - "id": "3e4c1fb2f0df938570805f2a5513be58a1af7dd63232a6822178ed2775dc9957", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_initBaseCache", - "source_mapping": { - "start": 26049, - "length": 748, - "filename_relative": "contracts/v2/TempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TempleDebtToken.sol", - "filename_short": "contracts/v2/TempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleDebtToken", - "source_mapping": { - "start": 2202, - "length": 30641, - "filename_relative": "contracts/v2/TempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TempleDebtToken.sol", - "filename_short": "contracts/v2/TempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "_initBaseCache(TempleDebtToken.BaseCache)" - } - }, - { - "type": "node", - "name": "_timeElapsed > 0", - "source_mapping": { - "start": 26435, - "length": 16, - "filename_relative": "contracts/v2/TempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TempleDebtToken.sol", - "filename_short": "contracts/v2/TempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 607 - ], - "starting_column": 13, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_initBaseCache", - "source_mapping": { - "start": 26049, - "length": 748, - "filename_relative": "contracts/v2/TempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TempleDebtToken.sol", - "filename_short": "contracts/v2/TempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleDebtToken", - "source_mapping": { - "start": 2202, - "length": 30641, - "filename_relative": "contracts/v2/TempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TempleDebtToken.sol", - "filename_short": "contracts/v2/TempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "_initBaseCache(TempleDebtToken.BaseCache)" - } - } - } + } + } + } + ], + "description": "TempleDebtToken._initDebtorCache(TempleDebtToken.BaseCache,ITempleDebtToken.Debtor,TempleDebtToken.DebtorCache,bool) (contracts/v2/TempleDebtToken.sol#672-727) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _timeElapsed > 0 (contracts/v2/TempleDebtToken.sol#703)\n", + "markdown": "[TempleDebtToken._initDebtorCache(TempleDebtToken.BaseCache,ITempleDebtToken.Debtor,TempleDebtToken.DebtorCache,bool)](contracts/v2/TempleDebtToken.sol#L672-L727) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_timeElapsed > 0](contracts/v2/TempleDebtToken.sol#L703)\n", + "first_markdown_element": "contracts/v2/TempleDebtToken.sol#L672-L727", + "id": "a6d589cd4caf5ac6f228dd6218ef29c77e92ed66db618140855c2644b3b2cb10", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "treasuryPriceIndex", + "source_mapping": { + "start": 3360, + "length": 506, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102], + "starting_column": 5, + "ending_column": 7 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryPriceIndexOracle", + "source_mapping": { + "start": 556, + "length": 6366, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TempleDebtToken._initBaseCache(TempleDebtToken.BaseCache) (contracts/v2/TempleDebtToken.sol#597-617) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _timeElapsed > 0 (contracts/v2/TempleDebtToken.sol#607)\n", - "markdown": "[TempleDebtToken._initBaseCache(TempleDebtToken.BaseCache)](contracts/v2/TempleDebtToken.sol#L597-L617) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_timeElapsed > 0](contracts/v2/TempleDebtToken.sol#L607)\n", - "first_markdown_element": "contracts/v2/TempleDebtToken.sol#L597-L617", - "id": "31468fb88b544bfa40953f9c670145ae2d6cc30a857f141027542b78efe5314e", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_initDebtorCache", - "source_mapping": { - "start": 28507, - "length": 2281, - "filename_relative": "contracts/v2/TempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TempleDebtToken.sol", - "filename_short": "contracts/v2/TempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleDebtToken", - "source_mapping": { - "start": 2202, - "length": 30641, - "filename_relative": "contracts/v2/TempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TempleDebtToken.sol", - "filename_short": "contracts/v2/TempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "_initDebtorCache(TempleDebtToken.BaseCache,ITempleDebtToken.Debtor,TempleDebtToken.DebtorCache,bool)" - } - }, - { - "type": "node", - "name": "_timeElapsed > 0", - "source_mapping": { - "start": 29667, - "length": 16, - "filename_relative": "contracts/v2/TempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TempleDebtToken.sol", - "filename_short": "contracts/v2/TempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 703 - ], - "starting_column": 13, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_initDebtorCache", - "source_mapping": { - "start": 28507, - "length": 2281, - "filename_relative": "contracts/v2/TempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TempleDebtToken.sol", - "filename_short": "contracts/v2/TempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleDebtToken", - "source_mapping": { - "start": 2202, - "length": 30641, - "filename_relative": "contracts/v2/TempleDebtToken.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TempleDebtToken.sol", - "filename_short": "contracts/v2/TempleDebtToken.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "_initDebtorCache(TempleDebtToken.BaseCache,ITempleDebtToken.Debtor,TempleDebtToken.DebtorCache,bool)" - } - } - } + }, + "signature": "treasuryPriceIndex()" + } + }, + { + "type": "node", + "name": "_now >= tpiData.targetTime", + "source_mapping": { + "start": 3489, + "length": 26, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [93], + "starting_column": 13, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "treasuryPriceIndex", + "source_mapping": { + "start": 3360, + "length": 506, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102], + "starting_column": 5, + "ending_column": 7 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryPriceIndexOracle", + "source_mapping": { + "start": 556, + "length": 6366, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "treasuryPriceIndex()" } - ], - "description": "TempleDebtToken._initDebtorCache(TempleDebtToken.BaseCache,ITempleDebtToken.Debtor,TempleDebtToken.DebtorCache,bool) (contracts/v2/TempleDebtToken.sol#672-727) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _timeElapsed > 0 (contracts/v2/TempleDebtToken.sol#703)\n", - "markdown": "[TempleDebtToken._initDebtorCache(TempleDebtToken.BaseCache,ITempleDebtToken.Debtor,TempleDebtToken.DebtorCache,bool)](contracts/v2/TempleDebtToken.sol#L672-L727) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_timeElapsed > 0](contracts/v2/TempleDebtToken.sol#L703)\n", - "first_markdown_element": "contracts/v2/TempleDebtToken.sol#L672-L727", - "id": "a6d589cd4caf5ac6f228dd6218ef29c77e92ed66db618140855c2644b3b2cb10", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "treasuryPriceIndex", - "source_mapping": { - "start": 2676, - "length": 309, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 70, - 71, - 72, - 73, - 74 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryPriceIndexOracle", - "source_mapping": { - "start": 672, - "length": 3918, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "treasuryPriceIndex()" - } - }, - { - "type": "node", - "name": "(block.timestamp < (tpiData.lastUpdatedAt + tpiData.cooldownSecs))", - "source_mapping": { - "start": 2754, - "length": 204, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 71, - 72, - 73 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "treasuryPriceIndex", - "source_mapping": { - "start": 2676, - "length": 309, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 70, - 71, - 72, - 73, - 74 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryPriceIndexOracle", - "source_mapping": { - "start": 672, - "length": 3918, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "treasuryPriceIndex()" - } - } - } + } + } + } + ], + "description": "TreasuryPriceIndexOracle.treasuryPriceIndex() (contracts/v2/TreasuryPriceIndexOracle.sol#91-102) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _now >= tpiData.targetTime (contracts/v2/TreasuryPriceIndexOracle.sol#93)\n", + "markdown": "[TreasuryPriceIndexOracle.treasuryPriceIndex()](contracts/v2/TreasuryPriceIndexOracle.sol#L91-L102) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_now >= tpiData.targetTime](contracts/v2/TreasuryPriceIndexOracle.sol#L93)\n", + "first_markdown_element": "contracts/v2/TreasuryPriceIndexOracle.sol#L91-L102", + "id": "dcebf3facc4c98e108c10f0f26715243d17dae7f03135b42c4924ec730f84c8a", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "setTreasuryPriceIndexAt", + "source_mapping": { + "start": 5557, + "length": 1362, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryPriceIndexOracle", + "source_mapping": { + "start": 556, + "length": 6366, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TreasuryPriceIndexOracle.treasuryPriceIndex() (contracts/v2/TreasuryPriceIndexOracle.sol#70-74) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- (block.timestamp < (tpiData.lastUpdatedAt + tpiData.cooldownSecs)) (contracts/v2/TreasuryPriceIndexOracle.sol#71-73)\n", - "markdown": "[TreasuryPriceIndexOracle.treasuryPriceIndex()](contracts/v2/TreasuryPriceIndexOracle.sol#L70-L74) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [(block.timestamp < (tpiData.lastUpdatedAt + tpiData.cooldownSecs))](contracts/v2/TreasuryPriceIndexOracle.sol#L71-L73)\n", - "first_markdown_element": "contracts/v2/TreasuryPriceIndexOracle.sol#L70-L74", - "id": "649566e5b9f48d4a53dd158c2137fe6a456902d4dbc71fadce5826d8bdeea4cf", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "setTreasuryPriceIndex", - "source_mapping": { - "start": 3772, - "length": 815, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryPriceIndexOracle", - "source_mapping": { - "start": 672, - "length": 3918, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTreasuryPriceIndex(uint96)" - } - }, - { - "type": "node", - "name": "_delta > maxTreasuryPriceIndexDelta", - "source_mapping": { - "start": 4199, - "length": 35, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 105 - ], - "starting_column": 17, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTreasuryPriceIndex", - "source_mapping": { - "start": 3772, - "length": 815, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryPriceIndexOracle", - "source_mapping": { - "start": 672, - "length": 3918, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTreasuryPriceIndex(uint96)" - } - } - } - }, - { - "type": "node", - "name": "(_newTpi > _oldTpi)", - "source_mapping": { - "start": 4105, - "length": 76, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 104 - ], - "starting_column": 13, - "ending_column": 89 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setTreasuryPriceIndex", - "source_mapping": { - "start": 3772, - "length": 815, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TreasuryPriceIndexOracle", - "source_mapping": { - "start": 672, - "length": 3918, - "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", - "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "setTreasuryPriceIndex(uint96)" - } - } - } + }, + "signature": "setTreasuryPriceIndexAt(uint96,uint32)" + } + }, + { + "type": "node", + "name": "targetTime < _now + minTreasuryPriceIndexTargetTimeDelta", + "source_mapping": { + "start": 5929, + "length": 56, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [147], + "starting_column": 13, + "ending_column": 69 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTreasuryPriceIndexAt", + "source_mapping": { + "start": 5557, + "length": 1362, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryPriceIndexOracle", + "source_mapping": { + "start": 556, + "length": 6366, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTreasuryPriceIndexAt(uint96,uint32)" } - ], - "description": "TreasuryPriceIndexOracle.setTreasuryPriceIndex(uint96) (contracts/v2/TreasuryPriceIndexOracle.sol#97-116) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _delta > maxTreasuryPriceIndexDelta (contracts/v2/TreasuryPriceIndexOracle.sol#105)\n\t- (_newTpi > _oldTpi) (contracts/v2/TreasuryPriceIndexOracle.sol#104)\n", - "markdown": "[TreasuryPriceIndexOracle.setTreasuryPriceIndex(uint96)](contracts/v2/TreasuryPriceIndexOracle.sol#L97-L116) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_delta > maxTreasuryPriceIndexDelta](contracts/v2/TreasuryPriceIndexOracle.sol#L105)\n\t- [(_newTpi > _oldTpi)](contracts/v2/TreasuryPriceIndexOracle.sol#L104)\n", - "first_markdown_element": "contracts/v2/TreasuryPriceIndexOracle.sol#L97-L116", - "id": "27e472ea358357b1aa713a4753b654ee999cc773f1704e268101424130b80b61", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "preCheck", - "source_mapping": { - "start": 3551, - "length": 1277, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleCircuitBreakerAllUsersPerPeriod", - "source_mapping": { - "start": 1479, - "length": 6866, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "preCheck(address,uint256)" - } - }, - { - "type": "node", - "name": "_nextBucketIndex != _currentBucketIndex", - "source_mapping": { - "start": 3971, - "length": 39, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 96 - ], - "starting_column": 13, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "preCheck", - "source_mapping": { - "start": 3551, - "length": 1277, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleCircuitBreakerAllUsersPerPeriod", - "source_mapping": { - "start": 1479, - "length": 6866, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "preCheck(address,uint256)" - } - } - } - }, - { - "type": "node", - "name": "_minBucketResetIndex < _nextBucketIndex", - "source_mapping": { - "start": 4180, - "length": 39, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 100 - ], - "starting_column": 24, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "preCheck", - "source_mapping": { - "start": 3551, - "length": 1277, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleCircuitBreakerAllUsersPerPeriod", - "source_mapping": { - "start": 1479, - "length": 6866, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "preCheck(address,uint256)" - } - } - } + } + } + }, + { + "type": "node", + "name": "_absDelta > maxTreasuryPriceIndexDelta", + "source_mapping": { + "start": 6271, + "length": 38, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [152], + "starting_column": 13, + "ending_column": 51 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTreasuryPriceIndexAt", + "source_mapping": { + "start": 5557, + "length": 1362, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryPriceIndexOracle", + "source_mapping": { + "start": 556, + "length": 6366, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTreasuryPriceIndexAt(uint96,uint32)" } - ], - "description": "TempleCircuitBreakerAllUsersPerPeriod.preCheck(address,uint256) (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#89-117) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _nextBucketIndex != _currentBucketIndex (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#96)\n\t- _minBucketResetIndex < _nextBucketIndex (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#100)\n", - "markdown": "[TempleCircuitBreakerAllUsersPerPeriod.preCheck(address,uint256)](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L89-L117) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_nextBucketIndex != _currentBucketIndex](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L96)\n\t- [_minBucketResetIndex < _nextBucketIndex](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L100)\n", - "first_markdown_element": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L89-L117", - "id": "080fc01692d6234533b35c64ebb6efb9506e8defa98bc2809f7c873c4c084550", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_getMinBucketResetIndex", - "source_mapping": { - "start": 5647, - "length": 406, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143, - 144, - 145 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleCircuitBreakerAllUsersPerPeriod", - "source_mapping": { - "start": 1479, - "length": 6866, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "_getMinBucketResetIndex(uint32,uint32,uint32)" - } - }, - { - "type": "node", - "name": "_currentBucketIndex < _oneperiodDurationAgoIndex", - "source_mapping": { - "start": 5915, - "length": 121, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 143 - ], - "starting_column": 13, - "ending_column": 134 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_getMinBucketResetIndex", - "source_mapping": { - "start": 5647, - "length": 406, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143, - 144, - 145 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleCircuitBreakerAllUsersPerPeriod", - "source_mapping": { - "start": 1479, - "length": 6866, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "_getMinBucketResetIndex(uint32,uint32,uint32)" - } - } - } + } + } + }, + { + "type": "node", + "name": "_absRateOfChange > maxAbsTreasuryPriceIndexRateOfChange", + "source_mapping": { + "start": 6461, + "length": 55, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [154], + "starting_column": 13, + "ending_column": 68 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTreasuryPriceIndexAt", + "source_mapping": { + "start": 5557, + "length": 1362, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryPriceIndexOracle", + "source_mapping": { + "start": 556, + "length": 6366, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTreasuryPriceIndexAt(uint96,uint32)" } - ], - "description": "TempleCircuitBreakerAllUsersPerPeriod._getMinBucketResetIndex(uint32,uint32,uint32) (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#140-145) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _currentBucketIndex < _oneperiodDurationAgoIndex (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#143)\n", - "markdown": "[TempleCircuitBreakerAllUsersPerPeriod._getMinBucketResetIndex(uint32,uint32,uint32)](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L140-L145) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_currentBucketIndex < _oneperiodDurationAgoIndex](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L143)\n", - "first_markdown_element": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L140-L145", - "id": "62847204845cb0c8231dae0ccd651ab847da9f27624c490709e49b40f8c0793c", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "currentUtilisation", - "source_mapping": { - "start": 6152, - "length": 910, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleCircuitBreakerAllUsersPerPeriod", - "source_mapping": { - "start": 1479, - "length": 6866, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "currentUtilisation()" - } - }, - { - "type": "node", - "name": "_nextBucketIndex != _currentBucketIndex", - "source_mapping": { - "start": 6625, - "length": 39, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 159 - ], - "starting_column": 13, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "currentUtilisation", - "source_mapping": { - "start": 6152, - "length": 910, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleCircuitBreakerAllUsersPerPeriod", - "source_mapping": { - "start": 1479, - "length": 6866, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "currentUtilisation()" - } - } - } - }, - { - "type": "node", - "name": "_minBucketResetIndex < _nextBucketIndex", - "source_mapping": { - "start": 6833, - "length": 39, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 162 - ], - "starting_column": 24, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "currentUtilisation", - "source_mapping": { - "start": 6152, - "length": 910, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleCircuitBreakerAllUsersPerPeriod", - "source_mapping": { - "start": 1479, - "length": 6866, - "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "currentUtilisation()" - } - } - } + } + } + }, + { + "type": "node", + "name": "_tpiDelta < 0", + "source_mapping": { + "start": 6180, + "length": 77, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [151], + "starting_column": 9, + "ending_column": 86 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "setTreasuryPriceIndexAt", + "source_mapping": { + "start": 5557, + "length": 1362, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [ + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TreasuryPriceIndexOracle", + "source_mapping": { + "start": 556, + "length": 6366, + "filename_relative": "contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryPriceIndexOracle.sol", + "filename_short": "contracts/v2/TreasuryPriceIndexOracle.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "setTreasuryPriceIndexAt(uint96,uint32)" } - ], - "description": "TempleCircuitBreakerAllUsersPerPeriod.currentUtilisation() (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#150-169) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _nextBucketIndex != _currentBucketIndex (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#159)\n\t- _minBucketResetIndex < _nextBucketIndex (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#162)\n", - "markdown": "[TempleCircuitBreakerAllUsersPerPeriod.currentUtilisation()](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L150-L169) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_nextBucketIndex != _currentBucketIndex](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L159)\n\t- [_minBucketResetIndex < _nextBucketIndex](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L162)\n", - "first_markdown_element": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L150-L169", - "id": "824d28da623fc8596a1354a4d1ea1765d521fc6a1fdeae63acbc756dfbc451ed", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "latestDsrBalance", - "source_mapping": { - "start": 4929, - "length": 510, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "latestDsrBalance()" - } - }, - { - "type": "node", - "name": "(block.timestamp > rho)", - "source_mapping": { - "start": 5272, - "length": 109, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 136 - ], - "starting_column": 9, - "ending_column": 118 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "latestDsrBalance", - "source_mapping": { - "start": 4929, - "length": 510, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "latestDsrBalance()" - } - } - } + } + } + } + ], + "description": "TreasuryPriceIndexOracle.setTreasuryPriceIndexAt(uint96,uint32) (contracts/v2/TreasuryPriceIndexOracle.sol#141-165) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- targetTime < _now + minTreasuryPriceIndexTargetTimeDelta (contracts/v2/TreasuryPriceIndexOracle.sol#147)\n\t- _absDelta > maxTreasuryPriceIndexDelta (contracts/v2/TreasuryPriceIndexOracle.sol#152)\n\t- _absRateOfChange > maxAbsTreasuryPriceIndexRateOfChange (contracts/v2/TreasuryPriceIndexOracle.sol#154)\n\t- _tpiDelta < 0 (contracts/v2/TreasuryPriceIndexOracle.sol#151)\n", + "markdown": "[TreasuryPriceIndexOracle.setTreasuryPriceIndexAt(uint96,uint32)](contracts/v2/TreasuryPriceIndexOracle.sol#L141-L165) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [targetTime < _now + minTreasuryPriceIndexTargetTimeDelta](contracts/v2/TreasuryPriceIndexOracle.sol#L147)\n\t- [_absDelta > maxTreasuryPriceIndexDelta](contracts/v2/TreasuryPriceIndexOracle.sol#L152)\n\t- [_absRateOfChange > maxAbsTreasuryPriceIndexRateOfChange](contracts/v2/TreasuryPriceIndexOracle.sol#L154)\n\t- [_tpiDelta < 0](contracts/v2/TreasuryPriceIndexOracle.sol#L151)\n", + "first_markdown_element": "contracts/v2/TreasuryPriceIndexOracle.sol#L141-L165", + "id": "82ebcf3bc2dce9c3d152ebad5a046d541a691e4433e02c30cdf82fd82beef3d7", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "preCheck", + "source_mapping": { + "start": 3551, + "length": 1277, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleCircuitBreakerAllUsersPerPeriod", + "source_mapping": { + "start": 1479, + "length": 6866, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "DsrBaseStrategy.latestDsrBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#129-138) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- (block.timestamp > rho) (contracts/v2/strategies/DsrBaseStrategy.sol#136)\n", - "markdown": "[DsrBaseStrategy.latestDsrBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L129-L138) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [(block.timestamp > rho)](contracts/v2/strategies/DsrBaseStrategy.sol#L136)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L129-L138", - "id": "5d10ceb2f5b13a3f1d386bd3ffb62d9e64d57500eb9ce74496832fa8d54f7c5e", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5445, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - }, - { - "type": "node", - "name": "(block.timestamp > pot.rho())", - "source_mapping": { - "start": 5566, - "length": 60, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 142 - ], - "starting_column": 9, - "ending_column": 69 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_checkpointChi", - "source_mapping": { - "start": 5445, - "length": 188, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DsrBaseStrategy", - "source_mapping": { - "start": 1041, - "length": 11744, - "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", - "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_checkpointChi()" - } - } - } + }, + "signature": "preCheck(address,uint256)" + } + }, + { + "type": "node", + "name": "_nextBucketIndex != _currentBucketIndex", + "source_mapping": { + "start": 3971, + "length": 39, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [96], + "starting_column": 13, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "preCheck", + "source_mapping": { + "start": 3551, + "length": 1277, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleCircuitBreakerAllUsersPerPeriod", + "source_mapping": { + "start": 1479, + "length": 6866, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "preCheck(address,uint256)" } - ], - "description": "DsrBaseStrategy._checkpointChi() (contracts/v2/strategies/DsrBaseStrategy.sol#140-143) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- (block.timestamp > pot.rho()) (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n", - "markdown": "[DsrBaseStrategy._checkpointChi()](contracts/v2/strategies/DsrBaseStrategy.sol#L140-L143) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [(block.timestamp > pot.rho())](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n", - "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L140-L143", - "id": "5cfe72c68305dea88c7c4193956094120fcd3b9c0b3634e1ae80f5a9b13cb40e", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_initDebtTokenCache", - "source_mapping": { - "start": 24259, - "length": 1450, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_initDebtTokenCache(TempleLineOfCredit.DebtTokenCache)" - } - }, - { - "type": "node", - "name": "_timeElapsed > 0", - "source_mapping": { - "start": 25121, - "length": 16, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 641 - ], - "starting_column": 13, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_initDebtTokenCache", - "source_mapping": { - "start": 24259, - "length": 1450, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_initDebtTokenCache(TempleLineOfCredit.DebtTokenCache)" - } - } - } + } + } + }, + { + "type": "node", + "name": "_minBucketResetIndex < _nextBucketIndex", + "source_mapping": { + "start": 4180, + "length": 39, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [100], + "starting_column": 24, + "ending_column": 63 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "preCheck", + "source_mapping": { + "start": 3551, + "length": 1277, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleCircuitBreakerAllUsersPerPeriod", + "source_mapping": { + "start": 1479, + "length": 6866, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "preCheck(address,uint256)" } - ], - "description": "TempleLineOfCredit._initDebtTokenCache(TempleLineOfCredit.DebtTokenCache) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#619-658) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _timeElapsed > 0 (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#641)\n", - "markdown": "[TempleLineOfCredit._initDebtTokenCache(TempleLineOfCredit.DebtTokenCache)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L619-L658) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_timeElapsed > 0](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L641)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L619-L658", - "id": "1d9fb732d9369c4da234795950c435996e1f5d0b0c4fd71e2ad0007ec6f7558b", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "calculateClaimable", - "source_mapping": { - "start": 1893, - "length": 581, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPayments", - "source_mapping": { - "start": 247, - "length": 3130, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "calculateClaimable(address)" - } - }, - { - "type": "node", - "name": "claimableAmount + claimed[_address] > allocation[_address]", - "source_mapping": { - "start": 2293, - "length": 58, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 13, - "ending_column": 71 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "calculateClaimable", - "source_mapping": { - "start": 1893, - "length": 581, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPayments", - "source_mapping": { - "start": 247, - "length": 3130, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "calculateClaimable(address)" - } - } - } + } + } + } + ], + "description": "TempleCircuitBreakerAllUsersPerPeriod.preCheck(address,uint256) (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#89-117) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _nextBucketIndex != _currentBucketIndex (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#96)\n\t- _minBucketResetIndex < _nextBucketIndex (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#100)\n", + "markdown": "[TempleCircuitBreakerAllUsersPerPeriod.preCheck(address,uint256)](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L89-L117) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_nextBucketIndex != _currentBucketIndex](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L96)\n\t- [_minBucketResetIndex < _nextBucketIndex](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L100)\n", + "first_markdown_element": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L89-L117", + "id": "080fc01692d6234533b35c64ebb6efb9506e8defa98bc2809f7c873c4c084550", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_getMinBucketResetIndex", + "source_mapping": { + "start": 5647, + "length": 406, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [140, 141, 142, 143, 144, 145], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleCircuitBreakerAllUsersPerPeriod", + "source_mapping": { + "start": 1479, + "length": 6866, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "TempleTeamPayments.calculateClaimable(address) (contracts/admin/TempleTeamPayments.sol#57-72) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- claimableAmount + claimed[_address] > allocation[_address] (contracts/admin/TempleTeamPayments.sol#68)\n", - "markdown": "[TempleTeamPayments.calculateClaimable(address)](contracts/admin/TempleTeamPayments.sol#L57-L72) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [claimableAmount + claimed[_address] > allocation[_address]](contracts/admin/TempleTeamPayments.sol#L68)\n", - "first_markdown_element": "contracts/admin/TempleTeamPayments.sol#L57-L72", - "id": "3c50b29e16f7abe9424e2eb7ddf7dd3a9178954836a5700181e781d6cab69a90", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "claim", - "source_mapping": { - "start": 2480, - "length": 355, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPayments", - "source_mapping": { - "start": 247, - "length": 3130, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "claim()" - } - }, - { - "type": "node", - "name": "require(bool,string)(claimable > 0,TempleTeamPayments: Member has no TEMPLE to claim)", - "source_mapping": { - "start": 2602, - "length": 75, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 76 - ], - "starting_column": 9, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "claim", - "source_mapping": { - "start": 2480, - "length": 355, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleTeamPayments", - "source_mapping": { - "start": 247, - "length": 3130, - "filename_relative": "contracts/admin/TempleTeamPayments.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/admin/TempleTeamPayments.sol", - "filename_short": "contracts/admin/TempleTeamPayments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "claim()" - } - } - } + }, + "signature": "_getMinBucketResetIndex(uint32,uint32,uint32)" + } + }, + { + "type": "node", + "name": "_currentBucketIndex < _oneperiodDurationAgoIndex", + "source_mapping": { + "start": 5915, + "length": 121, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [143], + "starting_column": 13, + "ending_column": 134 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_getMinBucketResetIndex", + "source_mapping": { + "start": 5647, + "length": 406, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [140, 141, 142, 143, 144, 145], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleCircuitBreakerAllUsersPerPeriod", + "source_mapping": { + "start": 1479, + "length": 6866, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_getMinBucketResetIndex(uint32,uint32,uint32)" } - ], - "description": "TempleTeamPayments.claim() (contracts/admin/TempleTeamPayments.sol#74-81) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(claimable > 0,TempleTeamPayments: Member has no TEMPLE to claim) (contracts/admin/TempleTeamPayments.sol#76)\n", - "markdown": "[TempleTeamPayments.claim()](contracts/admin/TempleTeamPayments.sol#L74-L81) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(claimable > 0,TempleTeamPayments: Member has no TEMPLE to claim)](contracts/admin/TempleTeamPayments.sol#L76)\n", - "first_markdown_element": "contracts/admin/TempleTeamPayments.sol#L74-L81", - "id": "d2cf6a934d99b6df0f4c782f92abbc6344366c44c011b9e95bdc6171398e7715", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 3932, - "length": 543, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)" - } - }, - { - "type": "node", - "name": "require(bool,string)(block.timestamp <= deadline,Vault: expired deadline)", - "source_mapping": { - "start": 4050, - "length": 63, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 101 - ], - "starting_column": 9, - "ending_column": 72 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 3932, - "length": 543, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)" - } - } - } + } + } + } + ], + "description": "TempleCircuitBreakerAllUsersPerPeriod._getMinBucketResetIndex(uint32,uint32,uint32) (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#140-145) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _currentBucketIndex < _oneperiodDurationAgoIndex (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#143)\n", + "markdown": "[TempleCircuitBreakerAllUsersPerPeriod._getMinBucketResetIndex(uint32,uint32,uint32)](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L140-L145) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_currentBucketIndex < _oneperiodDurationAgoIndex](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L143)\n", + "first_markdown_element": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L140-L145", + "id": "62847204845cb0c8231dae0ccd651ab847da9f27624c490709e49b40f8c0793c", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "currentUtilisation", + "source_mapping": { + "start": 6152, + "length": 910, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleCircuitBreakerAllUsersPerPeriod", + "source_mapping": { + "start": 1479, + "length": 6866, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "Vault.withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32) (contracts/core/Vault.sol#100-110) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(block.timestamp <= deadline,Vault: expired deadline) (contracts/core/Vault.sol#101)\n", - "markdown": "[Vault.withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)](contracts/core/Vault.sol#L100-L110) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(block.timestamp <= deadline,Vault: expired deadline)](contracts/core/Vault.sol#L101)\n", - "first_markdown_element": "contracts/core/Vault.sol#L100-L110", - "id": "23a917169154350b1f8e103875cf17fe3784896b355e9f9441c8bdfede6fc4a3", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5359, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - }, - { - "type": "node", - "name": "block.timestamp < firstPeriodStartTimestamp", - "source_mapping": { - "start": 5459, - "length": 43, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 141 - ], - "starting_column": 13, - "ending_column": 56 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5359, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - } - } - }, - { - "type": "node", - "name": "inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp", - "source_mapping": { - "start": 5783, - "length": 138, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 147 - ], - "starting_column": 9, - "ending_column": 147 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "inEnterExitWindow", - "source_mapping": { - "start": 5359, - "length": 569, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Vault", - "source_mapping": { - "start": 1161, - "length": 7823, - "filename_relative": "contracts/core/Vault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Vault.sol", - "filename_short": "contracts/core/Vault.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "inEnterExitWindow()" - } - } - } + }, + "signature": "currentUtilisation()" + } + }, + { + "type": "node", + "name": "_nextBucketIndex != _currentBucketIndex", + "source_mapping": { + "start": 6625, + "length": 39, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [159], + "starting_column": 13, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentUtilisation", + "source_mapping": { + "start": 6152, + "length": 910, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleCircuitBreakerAllUsersPerPeriod", + "source_mapping": { + "start": 1479, + "length": 6866, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentUtilisation()" } - ], - "description": "Vault.inEnterExitWindow() (contracts/core/Vault.sol#140-148) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp < firstPeriodStartTimestamp (contracts/core/Vault.sol#141)\n\t- inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp (contracts/core/Vault.sol#147)\n", - "markdown": "[Vault.inEnterExitWindow()](contracts/core/Vault.sol#L140-L148) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp < firstPeriodStartTimestamp](contracts/core/Vault.sol#L141)\n\t- [inWindow = cycleNumber * periodDuration + firstPeriodStartTimestamp + enterExitWindowDuration + ENTER_EXIT_WINDOW_BUFFER > block.timestamp](contracts/core/Vault.sol#L147)\n", - "first_markdown_element": "contracts/core/Vault.sol#L140-L148", - "id": "1ec8a1ed491ee4363e9d98709e6ea81c368e5197aa117baaec3fb5dca7a37050", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 1642, - "length": 627, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LockedOGTemple", - "source_mapping": { - "start": 213, - "length": 2143, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,uint256)" - } - }, - { - "type": "node", - "name": "require(bool,string)(lockedEntries[_idx].LockedUntilTimestamp < block.timestamp,Specified entry is still locked)", - "source_mapping": { - "start": 1867, - "length": 120, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 69, - 70, - 71, - 72 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawFor", - "source_mapping": { - "start": 1642, - "length": 627, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LockedOGTemple", - "source_mapping": { - "start": 213, - "length": 2143, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawFor(address,uint256)" - } - } - } + } + } + }, + { + "type": "node", + "name": "_minBucketResetIndex < _nextBucketIndex", + "source_mapping": { + "start": 6833, + "length": 39, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [162], + "starting_column": 24, + "ending_column": 63 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentUtilisation", + "source_mapping": { + "start": 6152, + "length": 910, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleCircuitBreakerAllUsersPerPeriod", + "source_mapping": { + "start": 1479, + "length": 6866, + "filename_relative": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "filename_short": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentUtilisation()" } - ], - "description": "LockedOGTemple.withdrawFor(address,uint256) (contracts/deprecated/LockedOGTemple.sol#62-81) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(lockedEntries[_idx].LockedUntilTimestamp < block.timestamp,Specified entry is still locked) (contracts/deprecated/LockedOGTemple.sol#69-72)\n", - "markdown": "[LockedOGTemple.withdrawFor(address,uint256)](contracts/deprecated/LockedOGTemple.sol#L62-L81) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(lockedEntries[_idx].LockedUntilTimestamp < block.timestamp,Specified entry is still locked)](contracts/deprecated/LockedOGTemple.sol#L69-L72)\n", - "first_markdown_element": "contracts/deprecated/LockedOGTemple.sol#L62-L81", - "id": "87a3b425d06a0ad7aa92a349ed04204eb047ebb07373cbfbcf3ed5aaaf25be67", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1568, - "length": 783, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(IERC20,IExitQueue,uint256,uint256)" - } - }, - { - "type": "node", - "name": "require(bool,string)(_startTimestamp < block.timestamp,Start timestamp must be in the past)", - "source_mapping": { - "start": 1716, - "length": 81, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 51 - ], - "starting_column": 9, - "ending_column": 90 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1568, - "length": 783, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(IERC20,IExitQueue,uint256,uint256)" - } - } - } - }, - { - "type": "node", - "name": "require(bool,string)(_startTimestamp > (block.timestamp - (24 * 2 * 60 * 60)),Start timestamp can't be more than 2 days in the past)", - "source_mapping": { - "start": 1807, - "length": 122, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 52 - ], - "starting_column": 9, - "ending_column": 131 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 1568, - "length": 783, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor(IERC20,IExitQueue,uint256,uint256)" - } - } - } + } + } + } + ], + "description": "TempleCircuitBreakerAllUsersPerPeriod.currentUtilisation() (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#150-169) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _nextBucketIndex != _currentBucketIndex (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#159)\n\t- _minBucketResetIndex < _nextBucketIndex (contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#162)\n", + "markdown": "[TempleCircuitBreakerAllUsersPerPeriod.currentUtilisation()](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L150-L169) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_nextBucketIndex != _currentBucketIndex](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L159)\n\t- [_minBucketResetIndex < _nextBucketIndex](contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L162)\n", + "first_markdown_element": "contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L150-L169", + "id": "824d28da623fc8596a1354a4d1ea1765d521fc6a1fdeae63acbc756dfbc451ed", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "latestDsrBalance", + "source_mapping": { + "start": 4930, + "length": 510, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [129, 130, 131, 132, 133, 134, 135, 136, 137, 138], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TempleStaking.constructor(IERC20,IExitQueue,uint256,uint256) (contracts/deprecated/TempleStaking.sol#45-64) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(_startTimestamp < block.timestamp,Start timestamp must be in the past) (contracts/deprecated/TempleStaking.sol#51)\n\t- require(bool,string)(_startTimestamp > (block.timestamp - (24 * 2 * 60 * 60)),Start timestamp can't be more than 2 days in the past) (contracts/deprecated/TempleStaking.sol#52)\n", - "markdown": "[TempleStaking.constructor(IERC20,IExitQueue,uint256,uint256)](contracts/deprecated/TempleStaking.sol#L45-L64) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(_startTimestamp < block.timestamp,Start timestamp must be in the past)](contracts/deprecated/TempleStaking.sol#L51)\n\t- [require(bool,string)(_startTimestamp > (block.timestamp - (24 * 2 * 60 * 60)),Start timestamp can't be more than 2 days in the past)](contracts/deprecated/TempleStaking.sol#L52)\n", - "first_markdown_element": "contracts/deprecated/TempleStaking.sol#L45-L64", - "id": "554e23718b67bc5f2aee502eb1257244b26e204743aa400a021bde5dfdae3375", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_updateAccumulationFactor", - "source_mapping": { - "start": 4050, - "length": 745, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_updateAccumulationFactor()" - } - }, - { - "type": "node", - "name": "_currentEpoch <= lastUpdatedEpoch", - "source_mapping": { - "start": 4429, - "length": 33, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 112 - ], - "starting_column": 13, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_updateAccumulationFactor", - "source_mapping": { - "start": 4050, - "length": 745, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_updateAccumulationFactor()" - } - } - } + }, + "signature": "latestDsrBalance()" + } + }, + { + "type": "node", + "name": "(block.timestamp > rho)", + "source_mapping": { + "start": 5273, + "length": 109, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [136], + "starting_column": 9, + "ending_column": 118 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "latestDsrBalance", + "source_mapping": { + "start": 4930, + "length": 510, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [129, 130, 131, 132, 133, 134, 135, 136, 137, 138], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "latestDsrBalance()" } - ], - "description": "TempleStaking._updateAccumulationFactor() (contracts/deprecated/TempleStaking.sol#105-120) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _currentEpoch <= lastUpdatedEpoch (contracts/deprecated/TempleStaking.sol#112)\n", - "markdown": "[TempleStaking._updateAccumulationFactor()](contracts/deprecated/TempleStaking.sol#L105-L120) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_currentEpoch <= lastUpdatedEpoch](contracts/deprecated/TempleStaking.sol#L112)\n", - "first_markdown_element": "contracts/deprecated/TempleStaking.sol#L105-L120", - "id": "2c34b26cb8045acf51e728be298d8b7511ea225b13e5adb53e7379207bee9ebf", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "relayedSetEndorsementsFor", - "source_mapping": { - "start": 3694, - "length": 758, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ElderElection", - "source_mapping": { - "start": 908, - "length": 5057, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)" - } - }, - { - "type": "node", - "name": "block.timestamp > req.deadline", - "source_mapping": { - "start": 4147, - "length": 30, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 128 - ], - "starting_column": 13, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "relayedSetEndorsementsFor", - "source_mapping": { - "start": 3694, - "length": 758, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ElderElection", - "source_mapping": { - "start": 908, - "length": 5057, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)" - } - } - } + } + } + } + ], + "description": "DsrBaseStrategy.latestDsrBalance() (contracts/v2/strategies/DsrBaseStrategy.sol#129-138) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- (block.timestamp > rho) (contracts/v2/strategies/DsrBaseStrategy.sol#136)\n", + "markdown": "[DsrBaseStrategy.latestDsrBalance()](contracts/v2/strategies/DsrBaseStrategy.sol#L129-L138) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [(block.timestamp > rho)](contracts/v2/strategies/DsrBaseStrategy.sol#L136)\n", + "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L129-L138", + "id": "5d10ceb2f5b13a3f1d386bd3ffb62d9e64d57500eb9ce74496832fa8d54f7c5e", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_checkpointChi", + "source_mapping": { + "start": 5446, + "length": 188, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [140, 141, 142, 143], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "ElderElection.relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes) (contracts/governance/ElderElection.sol#116-133) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > req.deadline (contracts/governance/ElderElection.sol#128)\n", - "markdown": "[ElderElection.relayedSetEndorsementsFor(ElderElection.EndorsementReq,bytes)](contracts/governance/ElderElection.sol#L116-L133) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > req.deadline](contracts/governance/ElderElection.sol#L128)\n", - "first_markdown_element": "contracts/governance/ElderElection.sol#L116-L133", - "id": "239671d596cd02628eaf3011f43031162b8fe5ef0e67e790828aa11ea864ca0c", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "signatureSplit", - "source_mapping": { - "start": 1240, - "length": 959, - "filename_relative": "contracts/v2/safeGuards/SafeForked.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/safeGuards/SafeForked.sol", - "filename_short": "contracts/v2/safeGuards/SafeForked.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "SafeForked", - "source_mapping": { - "start": 462, - "length": 6708, - "filename_relative": "contracts/v2/safeGuards/SafeForked.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/safeGuards/SafeForked.sol", - "filename_short": "contracts/v2/safeGuards/SafeForked.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "signatureSplit(bytes,uint256)" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 1654, - "length": 539, - "filename_relative": "contracts/v2/safeGuards/SafeForked.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/safeGuards/SafeForked.sol", - "filename_short": "contracts/v2/safeGuards/SafeForked.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "signatureSplit", - "source_mapping": { - "start": 1240, - "length": 959, - "filename_relative": "contracts/v2/safeGuards/SafeForked.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/safeGuards/SafeForked.sol", - "filename_short": "contracts/v2/safeGuards/SafeForked.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "SafeForked", - "source_mapping": { - "start": 462, - "length": 6708, - "filename_relative": "contracts/v2/safeGuards/SafeForked.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/safeGuards/SafeForked.sol", - "filename_short": "contracts/v2/safeGuards/SafeForked.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "signatureSplit(bytes,uint256)" - } - } - } + }, + "signature": "_checkpointChi()" + } + }, + { + "type": "node", + "name": "(block.timestamp > pot.rho())", + "source_mapping": { + "start": 5567, + "length": 60, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [142], + "starting_column": 9, + "ending_column": 69 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_checkpointChi", + "source_mapping": { + "start": 5446, + "length": 188, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [140, 141, 142, 143], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DsrBaseStrategy", + "source_mapping": { + "start": 1041, + "length": 11745, + "filename_relative": "contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/strategies/DsrBaseStrategy.sol", + "filename_short": "contracts/v2/strategies/DsrBaseStrategy.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_checkpointChi()" } - ], - "description": "SafeForked.signatureSplit(bytes,uint256) (contracts/v2/safeGuards/SafeForked.sol#22-46) uses assembly\n\t- INLINE ASM (contracts/v2/safeGuards/SafeForked.sol#35-45)\n", - "markdown": "[SafeForked.signatureSplit(bytes,uint256)](contracts/v2/safeGuards/SafeForked.sol#L22-L46) uses assembly\n\t- [INLINE ASM](contracts/v2/safeGuards/SafeForked.sol#L35-L45)\n", - "first_markdown_element": "contracts/v2/safeGuards/SafeForked.sol#L22-L46", - "id": "3ae97a7384e3769435f8b201c1864a124173df742b9300bf25e8a1a702a86371", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "gain", - "source_mapping": { - "start": 925, - "length": 300, - "filename_relative": "contracts/deprecated/Faith.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/Faith.sol", - "filename_short": "contracts/deprecated/Faith.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Faith", - "source_mapping": { - "start": 125, - "length": 1740, - "filename_relative": "contracts/deprecated/Faith.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/Faith.sol", - "filename_short": "contracts/deprecated/Faith.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "gain(address,uint112)" - } - }, - { - "type": "node", - "name": "require(bool,string)(canManageFaith[msg.sender] == true,Faith: caller cannot manage faith)", - "source_mapping": { - "start": 986, - "length": 80, - "filename_relative": "contracts/deprecated/Faith.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/Faith.sol", - "filename_short": "contracts/deprecated/Faith.sol", - "is_dependency": false, - "lines": [ - 32 - ], - "starting_column": 9, - "ending_column": 89 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "gain", - "source_mapping": { - "start": 925, - "length": 300, - "filename_relative": "contracts/deprecated/Faith.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/Faith.sol", - "filename_short": "contracts/deprecated/Faith.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Faith", - "source_mapping": { - "start": 125, - "length": 1740, - "filename_relative": "contracts/deprecated/Faith.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/Faith.sol", - "filename_short": "contracts/deprecated/Faith.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "gain(address,uint112)" - } - } - } + } + } + } + ], + "description": "DsrBaseStrategy._checkpointChi() (contracts/v2/strategies/DsrBaseStrategy.sol#140-143) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- (block.timestamp > pot.rho()) (contracts/v2/strategies/DsrBaseStrategy.sol#142)\n", + "markdown": "[DsrBaseStrategy._checkpointChi()](contracts/v2/strategies/DsrBaseStrategy.sol#L140-L143) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [(block.timestamp > pot.rho())](contracts/v2/strategies/DsrBaseStrategy.sol#L142)\n", + "first_markdown_element": "contracts/v2/strategies/DsrBaseStrategy.sol#L140-L143", + "id": "5cfe72c68305dea88c7c4193956094120fcd3b9c0b3634e1ae80f5a9b13cb40e", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_initDebtTokenCache", + "source_mapping": { + "start": 24203, + "length": 1450, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, + 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, + 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, + 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Faith.gain(address,uint112) (contracts/deprecated/Faith.sol#31-37) compares to a boolean constant:\n\t-require(bool,string)(canManageFaith[msg.sender] == true,Faith: caller cannot manage faith) (contracts/deprecated/Faith.sol#32)\n", - "markdown": "[Faith.gain(address,uint112)](contracts/deprecated/Faith.sol#L31-L37) compares to a boolean constant:\n\t-[require(bool,string)(canManageFaith[msg.sender] == true,Faith: caller cannot manage faith)](contracts/deprecated/Faith.sol#L32)\n", - "first_markdown_element": "contracts/deprecated/Faith.sol#L31-L37", - "id": "56cf0d358c021f966d8663efb62e81b7ea09bb2bf0bc7a5ba363ebe693c3bf56", - "check": "boolean-equal", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "redeem", - "source_mapping": { - "start": 1231, - "length": 412, - "filename_relative": "contracts/deprecated/Faith.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/Faith.sol", - "filename_short": "contracts/deprecated/Faith.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Faith", - "source_mapping": { - "start": 125, - "length": 1740, - "filename_relative": "contracts/deprecated/Faith.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/Faith.sol", - "filename_short": "contracts/deprecated/Faith.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "redeem(address,uint112)" - } - }, - { - "type": "node", - "name": "require(bool,string)(canManageFaith[msg.sender] == true,Faith: caller cannot manage faith)", - "source_mapping": { - "start": 1294, - "length": 80, - "filename_relative": "contracts/deprecated/Faith.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/Faith.sol", - "filename_short": "contracts/deprecated/Faith.sol", - "is_dependency": false, - "lines": [ - 40 - ], - "starting_column": 9, - "ending_column": 89 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "redeem", - "source_mapping": { - "start": 1231, - "length": 412, - "filename_relative": "contracts/deprecated/Faith.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/Faith.sol", - "filename_short": "contracts/deprecated/Faith.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Faith", - "source_mapping": { - "start": 125, - "length": 1740, - "filename_relative": "contracts/deprecated/Faith.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/Faith.sol", - "filename_short": "contracts/deprecated/Faith.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "redeem(address,uint112)" - } - } - } + }, + "signature": "_initDebtTokenCache(TempleLineOfCredit.DebtTokenCache)" + } + }, + { + "type": "node", + "name": "_timeElapsed > 0", + "source_mapping": { + "start": 25065, + "length": 16, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [640], + "starting_column": 13, + "ending_column": 29 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_initDebtTokenCache", + "source_mapping": { + "start": 24203, + "length": 1450, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_initDebtTokenCache(TempleLineOfCredit.DebtTokenCache)" } - ], - "description": "Faith.redeem(address,uint112) (contracts/deprecated/Faith.sol#39-48) compares to a boolean constant:\n\t-require(bool,string)(canManageFaith[msg.sender] == true,Faith: caller cannot manage faith) (contracts/deprecated/Faith.sol#40)\n", - "markdown": "[Faith.redeem(address,uint112)](contracts/deprecated/Faith.sol#L39-L48) compares to a boolean constant:\n\t-[require(bool,string)(canManageFaith[msg.sender] == true,Faith: caller cannot manage faith)](contracts/deprecated/Faith.sol#L40)\n", - "first_markdown_element": "contracts/deprecated/Faith.sol#L39-L48", - "id": "f752127c3f283f8e0863072b8bdc266223eb3fecc4b64e758a86403628b01ba6", - "check": "boolean-equal", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "batchLiquidate", - "source_mapping": { - "start": 13008, - "length": 1632, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "batchLiquidate(address[])" - } - }, - { - "type": "node", - "name": "delete allAccountsData[_account]", - "source_mapping": { - "start": 14023, - "length": 32, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 344 - ], - "starting_column": 17, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "batchLiquidate", - "source_mapping": { - "start": 13008, - "length": 1632, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleLineOfCredit", - "source_mapping": { - "start": 1433, - "length": 31753, - "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "batchLiquidate(address[])" - } - } - } + } + } + } + ], + "description": "TempleLineOfCredit._initDebtTokenCache(TempleLineOfCredit.DebtTokenCache) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#618-657) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _timeElapsed > 0 (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#640)\n", + "markdown": "[TempleLineOfCredit._initDebtTokenCache(TempleLineOfCredit.DebtTokenCache)](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L618-L657) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_timeElapsed > 0](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L640)\n", + "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L618-L657", + "id": "195556f3bab1a462672097b00cd1340a45349779f22a9600cb865337be81d49e", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TempleLineOfCredit.batchLiquidate(address[]) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#318-359) has costly operations inside a loop:\n\t- delete allAccountsData[_account] (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#344)\n", - "markdown": "[TempleLineOfCredit.batchLiquidate(address[])](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L318-L359) has costly operations inside a loop:\n\t- [delete allAccountsData[_account]](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L344)\n", - "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L318-L359", - "id": "a95c0c9dfeb348e0fd86f2f14090e1fbee931ec14c7a4d06443de73a63f4c257", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - }, - { - "type": "node", - "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", - "source_mapping": { - "start": 1972, - "length": 91, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 100 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "_safeTransfer", - "source_mapping": { - "start": 1892, - "length": 284, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "_safeTransfer(address,address,uint256)" - } - } - } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" + } + }, + { + "type": "node", + "name": "timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0", + "source_mapping": { + "start": 3460, + "length": 51, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [84], + "starting_column": 13, + "ending_column": 64 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_update", + "source_mapping": { + "start": 3107, + "length": 847, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_update(uint256,uint256,uint112,uint112)" } - ], - "description": "Low level call in TempleUniswapV2Pair._safeTransfer(address,address,uint256) (contracts/amm/TempleUniswapV2Pair.sol#49-52):\n\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n", - "markdown": "Low level call in [TempleUniswapV2Pair._safeTransfer(address,address,uint256)](contracts/amm/TempleUniswapV2Pair.sol#L49-L52):\n\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L49-L52", - "id": "1f83014450dcc4da7bf1e0bd2a6815416858bcab0fc682471618f34d8d10a334", - "check": "low-level-calls", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 8542, - "length": 336, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdraw(address,address,uint256)" - } - }, - { - "type": "node", - "name": "(sent) = address(to).call{value: amount}()", - "source_mapping": { - "start": 8711, - "length": 50, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 229 - ], - "starting_column": 7, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 8542, - "length": 336, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStableAMMRouter", - "source_mapping": { - "start": 640, - "length": 8240, - "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleStableAMMRouter.sol", - "filename_short": "contracts/amm/TempleStableAMMRouter.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdraw(address,address,uint256)" - } - } - } + } + } + } + ], + "description": "TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/amm/TempleUniswapV2Pair.sol#80-93) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0 (contracts/amm/TempleUniswapV2Pair.sol#84)\n", + "markdown": "[TempleUniswapV2Pair._update(uint256,uint256,uint112,uint112)](contracts/amm/TempleUniswapV2Pair.sol#L80-L93) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0](contracts/amm/TempleUniswapV2Pair.sol#L84)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L80-L93", + "id": "3e4c1fb2f0df938570805f2a5513be58a1af7dd63232a6822178ed2775dc9957", + "check": "timestamp", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "signatureSplit", + "source_mapping": { + "start": 1240, + "length": 959, + "filename_relative": "contracts/v2/safeGuards/SafeForked.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/safeGuards/SafeForked.sol", + "filename_short": "contracts/v2/safeGuards/SafeForked.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "SafeForked", + "source_mapping": { + "start": 462, + "length": 6708, + "filename_relative": "contracts/v2/safeGuards/SafeForked.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/safeGuards/SafeForked.sol", + "filename_short": "contracts/v2/safeGuards/SafeForked.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Low level call in TempleStableAMMRouter.withdraw(address,address,uint256) (contracts/amm/TempleStableAMMRouter.sol#226-234):\n\t- (sent) = address(to).call{value: amount}() (contracts/amm/TempleStableAMMRouter.sol#229)\n", - "markdown": "Low level call in [TempleStableAMMRouter.withdraw(address,address,uint256)](contracts/amm/TempleStableAMMRouter.sol#L226-L234):\n\t- [(sent) = address(to).call{value: amount}()](contracts/amm/TempleStableAMMRouter.sol#L229)\n", - "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L226-L234", - "id": "31c25a54b1893eb681300419645fdf23efa72a552693e34424292bf43bb1af2e", - "check": "low-level-calls", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 5260, - "length": 373, - "filename_relative": "contracts/core/VaultProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultProxy.sol", - "filename_short": "contracts/core/VaultProxy.sol", - "is_dependency": false, - "lines": [ - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultProxy", - "source_mapping": { - "start": 456, - "length": 5179, - "filename_relative": "contracts/core/VaultProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultProxy.sol", - "filename_short": "contracts/core/VaultProxy.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdraw(address,address,uint256)" - } - }, - { - "type": "node", - "name": "(sent) = address(to).call{value: amount}()", - "source_mapping": { - "start": 5444, - "length": 50, - "filename_relative": "contracts/core/VaultProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultProxy.sol", - "filename_short": "contracts/core/VaultProxy.sol", - "is_dependency": false, - "lines": [ - 129 - ], - "starting_column": 13, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 5260, - "length": 373, - "filename_relative": "contracts/core/VaultProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultProxy.sol", - "filename_short": "contracts/core/VaultProxy.sol", - "is_dependency": false, - "lines": [ - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultProxy", - "source_mapping": { - "start": 456, - "length": 5179, - "filename_relative": "contracts/core/VaultProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultProxy.sol", - "filename_short": "contracts/core/VaultProxy.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdraw(address,address,uint256)" - } - } - } + }, + "signature": "signatureSplit(bytes,uint256)" + } + }, + { + "type": "node", + "name": "", + "source_mapping": { + "start": 1654, + "length": 539, + "filename_relative": "contracts/v2/safeGuards/SafeForked.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/safeGuards/SafeForked.sol", + "filename_short": "contracts/v2/safeGuards/SafeForked.sol", + "is_dependency": false, + "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "signatureSplit", + "source_mapping": { + "start": 1240, + "length": 959, + "filename_relative": "contracts/v2/safeGuards/SafeForked.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/safeGuards/SafeForked.sol", + "filename_short": "contracts/v2/safeGuards/SafeForked.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "SafeForked", + "source_mapping": { + "start": 462, + "length": 6708, + "filename_relative": "contracts/v2/safeGuards/SafeForked.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/safeGuards/SafeForked.sol", + "filename_short": "contracts/v2/safeGuards/SafeForked.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "signatureSplit(bytes,uint256)" } - ], - "description": "Low level call in VaultProxy.withdraw(address,address,uint256) (contracts/core/VaultProxy.sol#125-134):\n\t- (sent) = address(to).call{value: amount}() (contracts/core/VaultProxy.sol#129)\n", - "markdown": "Low level call in [VaultProxy.withdraw(address,address,uint256)](contracts/core/VaultProxy.sol#L125-L134):\n\t- [(sent) = address(to).call{value: amount}()](contracts/core/VaultProxy.sol#L129)\n", - "first_markdown_element": "contracts/core/VaultProxy.sol#L125-L134", - "id": "3d550ecf3771642959a4477b9b2513d6dc53937fd56c14ca08ff22edc5711aa2", - "check": "low-level-calls", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 1837, - "length": 373, - "filename_relative": "contracts/core/VaultedTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultedTemple.sol", - "filename_short": "contracts/core/VaultedTemple.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultedTemple", - "source_mapping": { - "start": 1207, - "length": 1005, - "filename_relative": "contracts/core/VaultedTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultedTemple.sol", - "filename_short": "contracts/core/VaultedTemple.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdraw(address,address,uint256)" - } - }, - { - "type": "node", - "name": "(sent) = address(to).call{value: amount}()", - "source_mapping": { - "start": 2021, - "length": 50, - "filename_relative": "contracts/core/VaultedTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultedTemple.sol", - "filename_short": "contracts/core/VaultedTemple.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 13, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 1837, - "length": 373, - "filename_relative": "contracts/core/VaultedTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultedTemple.sol", - "filename_short": "contracts/core/VaultedTemple.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultedTemple", - "source_mapping": { - "start": 1207, - "length": 1005, - "filename_relative": "contracts/core/VaultedTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultedTemple.sol", - "filename_short": "contracts/core/VaultedTemple.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "withdraw(address,address,uint256)" - } - } - } + } + } + } + ], + "description": "SafeForked.signatureSplit(bytes,uint256) (contracts/v2/safeGuards/SafeForked.sol#22-46) uses assembly\n\t- INLINE ASM (contracts/v2/safeGuards/SafeForked.sol#35-45)\n", + "markdown": "[SafeForked.signatureSplit(bytes,uint256)](contracts/v2/safeGuards/SafeForked.sol#L22-L46) uses assembly\n\t- [INLINE ASM](contracts/v2/safeGuards/SafeForked.sol#L35-L45)\n", + "first_markdown_element": "contracts/v2/safeGuards/SafeForked.sol#L22-L46", + "id": "3ae97a7384e3769435f8b201c1864a124173df742b9300bf25e8a1a702a86371", + "check": "assembly", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "batchLiquidate", + "source_mapping": { + "start": 13008, + "length": 1632, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, + 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, + 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, + 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Low level call in VaultedTemple.withdraw(address,address,uint256) (contracts/core/VaultedTemple.sol#52-61):\n\t- (sent) = address(to).call{value: amount}() (contracts/core/VaultedTemple.sol#56)\n", - "markdown": "Low level call in [VaultedTemple.withdraw(address,address,uint256)](contracts/core/VaultedTemple.sol#L52-L61):\n\t- [(sent) = address(to).call{value: amount}()](contracts/core/VaultedTemple.sol#L56)\n", - "first_markdown_element": "contracts/core/VaultedTemple.sol#L52-L61", - "id": "5cd237239261e23b4d84e1d8b374d18ba70d3249244b864e26e6ac2973377434", - "check": "low-level-calls", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "_exiter", - "source_mapping": { - "start": 939, - "length": 7, - "filename_relative": "contracts/deprecated/InstantExitQueue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/InstantExitQueue.sol", - "filename_short": "contracts/deprecated/InstantExitQueue.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 13, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "join", - "source_mapping": { - "start": 769, - "length": 278, - "filename_relative": "contracts/deprecated/InstantExitQueue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/InstantExitQueue.sol", - "filename_short": "contracts/deprecated/InstantExitQueue.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "InstantExitQueue", - "source_mapping": { - "start": 428, - "length": 621, - "filename_relative": "contracts/deprecated/InstantExitQueue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/InstantExitQueue.sol", - "filename_short": "contracts/deprecated/InstantExitQueue.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "join(address,uint256)" - } - } - } - }, - { + }, + "signature": "batchLiquidate(address[])" + } + }, + { + "type": "node", + "name": "delete allAccountsData[_account]", + "source_mapping": { + "start": 14023, + "length": 32, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [344], + "starting_column": 17, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "batchLiquidate", + "source_mapping": { + "start": 13008, + "length": 1632, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { "type": "contract", - "name": "InstantExitQueue", - "source_mapping": { - "start": 428, - "length": 621, - "filename_relative": "contracts/deprecated/InstantExitQueue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/InstantExitQueue.sol", - "filename_short": "contracts/deprecated/InstantExitQueue.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 1, - "ending_column": 0 - } + "name": "TempleLineOfCredit", + "source_mapping": { + "start": 1433, + "length": 31697, + "filename_relative": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "filename_short": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "batchLiquidate(address[])" } - ], - "description": "Redundant expression \"_exiter (contracts/deprecated/InstantExitQueue.sol#28)\" inInstantExitQueue (contracts/deprecated/InstantExitQueue.sol#13-33)\n", - "markdown": "Redundant expression \"[_exiter](contracts/deprecated/InstantExitQueue.sol#L28)\" in[InstantExitQueue](contracts/deprecated/InstantExitQueue.sol#L13-L33)\n", - "first_markdown_element": "contracts/deprecated/InstantExitQueue.sol#L28", - "id": "bc002bdc55bb3f699dc53c1f22497f6cd18058776cfe20cd708e317247a68278", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "slitherConstructorConstantVariables", - "source_mapping": { - "start": 456, - "length": 5179, - "filename_relative": "contracts/core/VaultProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultProxy.sol", - "filename_short": "contracts/core/VaultProxy.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136 - ], - "starting_column": 1, - "ending_column": 0 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultProxy", - "source_mapping": { - "start": 456, - "length": 5179, - "filename_relative": "contracts/core/VaultProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultProxy.sol", - "filename_short": "contracts/core/VaultProxy.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "slitherConstructorConstantVariables()" - } - }, - { - "type": "node", - "name": "TA_MULT = 0x40004000000000000000000000000000", - "source_mapping": { - "start": 1175, - "length": 69, - "filename_relative": "contracts/core/VaultProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultProxy.sol", - "filename_short": "contracts/core/VaultProxy.sol", - "is_dependency": false, - "lines": [ - 39 - ], - "starting_column": 5, - "ending_column": 74 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "slitherConstructorConstantVariables", - "source_mapping": { - "start": 456, - "length": 5179, - "filename_relative": "contracts/core/VaultProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultProxy.sol", - "filename_short": "contracts/core/VaultProxy.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136 - ], - "starting_column": 1, - "ending_column": 0 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VaultProxy", - "source_mapping": { - "start": 456, - "length": 5179, - "filename_relative": "contracts/core/VaultProxy.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/VaultProxy.sol", - "filename_short": "contracts/core/VaultProxy.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "slitherConstructorConstantVariables()" - } - } - } + } + } + } + ], + "description": "TempleLineOfCredit.batchLiquidate(address[]) (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#318-359) has costly operations inside a loop:\n\t- delete allAccountsData[_account] (contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#344)\n", + "markdown": "[TempleLineOfCredit.batchLiquidate(address[])](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L318-L359) has costly operations inside a loop:\n\t- [delete allAccountsData[_account]](contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L344)\n", + "first_markdown_element": "contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L318-L359", + "id": "a95c0c9dfeb348e0fd86f2f14090e1fbee931ec14c7a4d06443de73a63f4c257", + "check": "costly-loop", + "impact": "Informational", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "withdraw", + "source_mapping": { + "start": 8557, + "length": 336, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [226, 227, 228, 229, 230, 231, 232, 233, 234], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleStableAMMRouter", + "source_mapping": { + "start": 640, + "length": 8255, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "VaultProxy.slitherConstructorConstantVariables() (contracts/core/VaultProxy.sol#16-136) uses literals with too many digits:\n\t- TA_MULT = 0x40004000000000000000000000000000 (contracts/core/VaultProxy.sol#39)\n", - "markdown": "[VaultProxy.slitherConstructorConstantVariables()](contracts/core/VaultProxy.sol#L16-L136) uses literals with too many digits:\n\t- [TA_MULT = 0x40004000000000000000000000000000](contracts/core/VaultProxy.sol#L39)\n", - "first_markdown_element": "contracts/core/VaultProxy.sol#L16-L136", - "id": "7f742f5495267be1c67e31f98c8c85491fab9710c070a2223905e20c3fc5efed", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { + }, + "signature": "withdraw(address,address,uint256)" + } + }, + { + "type": "node", + "name": "(sent) = address(to).call{value: amount}()", + "source_mapping": { + "start": 8726, + "length": 50, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [229], + "starting_column": 7, + "ending_column": 57 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdraw", + "source_mapping": { + "start": 8557, + "length": 336, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [226, 227, 228, 229, 230, 231, 232, 233, 234], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { "type": "contract", - "name": "TreasuryReservesVault", - "source_mapping": { - "start": 2150, - "length": 32023, - "filename_relative": "contracts/v2/TreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/v2/TreasuryReservesVault.sol", - "filename_short": "contracts/v2/TreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "function", - "name": "borrowTokens", - "source_mapping": { - "start": 6801, - "length": 232, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 165, - 166, - 167, - 168, - 169, - 170 - ], - "starting_column": 5, - "ending_column": 7 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ITreasuryReservesVault", - "source_mapping": { - "start": 1896, - "length": 12436, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "borrowTokens(IERC20)" - } - }, - { - "type": "function", - "name": "strategyTokenCredits", - "source_mapping": { - "start": 7440, - "length": 94, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 182 - ], - "starting_column": 5, - "ending_column": 99 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ITreasuryReservesVault", - "source_mapping": { - "start": 1896, - "length": 12436, - "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", - "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "strategyTokenCredits(address,IERC20)" - } + "name": "TempleStableAMMRouter", + "source_mapping": { + "start": 640, + "length": 8255, + "filename_relative": "contracts/amm/TempleStableAMMRouter.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleStableAMMRouter.sol", + "filename_short": "contracts/amm/TempleStableAMMRouter.sol", + "is_dependency": false, + "lines": [ + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "withdraw(address,address,uint256)" } - ], - "description": "TreasuryReservesVault (contracts/v2/TreasuryReservesVault.sol#46-779) does not implement functions:\n\t- ITreasuryReservesVault.borrowTokens(IERC20) (contracts/interfaces/v2/ITreasuryReservesVault.sol#165-170)\n\t- ITreasuryReservesVault.strategyTokenCredits(address,IERC20) (contracts/interfaces/v2/ITreasuryReservesVault.sol#182)\n", - "markdown": "[TreasuryReservesVault](contracts/v2/TreasuryReservesVault.sol#L46-L779) does not implement functions:\n\t- [ITreasuryReservesVault.borrowTokens(IERC20)](contracts/interfaces/v2/ITreasuryReservesVault.sol#L165-L170)\n\t- [ITreasuryReservesVault.strategyTokenCredits(address,IERC20)](contracts/interfaces/v2/ITreasuryReservesVault.sol#L182)\n", - "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L46-L779", - "id": "5ca38996b66ca642bbaf28ffb239e4c9ea40cee90fe7623ec08272ca68b3bfd3", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "kLast", - "source_mapping": { - "start": 1237, - "length": 17, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleUniswapV2Pair", - "source_mapping": { - "start": 440, - "length": 8733, - "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/amm/TempleUniswapV2Pair.sol", - "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } + } + } + } + ], + "description": "Low level call in TempleStableAMMRouter.withdraw(address,address,uint256) (contracts/amm/TempleStableAMMRouter.sol#226-234):\n\t- (sent) = address(to).call{value: amount}() (contracts/amm/TempleStableAMMRouter.sol#229)\n", + "markdown": "Low level call in [TempleStableAMMRouter.withdraw(address,address,uint256)](contracts/amm/TempleStableAMMRouter.sol#L226-L234):\n\t- [(sent) = address(to).call{value: amount}()](contracts/amm/TempleStableAMMRouter.sol#L229)\n", + "first_markdown_element": "contracts/amm/TempleStableAMMRouter.sol#L226-L234", + "id": "31c25a54b1893eb681300419645fdf23efa72a552693e34424292bf43bb1af2e", + "check": "low-level-calls", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "withdraw", + "source_mapping": { + "start": 1857, + "length": 373, + "filename_relative": "contracts/core/VaultedTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultedTemple.sol", + "filename_short": "contracts/core/VaultedTemple.sol", + "is_dependency": false, + "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60, 61], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "VaultedTemple", + "source_mapping": { + "start": 1207, + "length": 1025, + "filename_relative": "contracts/core/VaultedTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultedTemple.sol", + "filename_short": "contracts/core/VaultedTemple.sol", + "is_dependency": false, + "lines": [ + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "TempleUniswapV2Pair.kLast (contracts/amm/TempleUniswapV2Pair.sol#29) should be constant \n", - "markdown": "[TempleUniswapV2Pair.kLast](contracts/amm/TempleUniswapV2Pair.sol#L29) should be constant \n", - "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L29", - "id": "67ff6bf1d9c5c18434ceb39e4ad633556104516f983fe5b005c96338bc0a2a06", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "templars", - "source_mapping": { - "start": 1493, - "length": 23, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ElderElection", - "source_mapping": { - "start": 908, - "length": 5057, - "filename_relative": "contracts/governance/ElderElection.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/ElderElection.sol", - "filename_short": "contracts/governance/ElderElection.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } + }, + "signature": "withdraw(address,address,uint256)" + } + }, + { + "type": "node", + "name": "(sent) = address(to).call{value: amount}()", + "source_mapping": { + "start": 2041, + "length": 50, + "filename_relative": "contracts/core/VaultedTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultedTemple.sol", + "filename_short": "contracts/core/VaultedTemple.sol", + "is_dependency": false, + "lines": [56], + "starting_column": 13, + "ending_column": 63 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdraw", + "source_mapping": { + "start": 1857, + "length": 373, + "filename_relative": "contracts/core/VaultedTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultedTemple.sol", + "filename_short": "contracts/core/VaultedTemple.sol", + "is_dependency": false, + "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60, 61], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "VaultedTemple", + "source_mapping": { + "start": 1207, + "length": 1025, + "filename_relative": "contracts/core/VaultedTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/VaultedTemple.sol", + "filename_short": "contracts/core/VaultedTemple.sol", + "is_dependency": false, + "lines": [ + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "withdraw(address,address,uint256)" } - ], - "description": "ElderElection.templars (contracts/governance/ElderElection.sol#42) should be immutable \n", - "markdown": "[ElderElection.templars](contracts/governance/ElderElection.sol#L42) should be immutable \n", - "first_markdown_element": "contracts/governance/ElderElection.sol#L42", - "id": "4f112a58dcc55f97428327a1a16bf19355d3278600b10377fef728f2183cae43", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "revalToken", - "source_mapping": { - "start": 537, - "length": 24, - "filename_relative": "contracts/core/Exposure.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Exposure.sol", - "filename_short": "contracts/core/Exposure.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Exposure", - "source_mapping": { - "start": 362, - "length": 3820, - "filename_relative": "contracts/core/Exposure.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/Exposure.sol", - "filename_short": "contracts/core/Exposure.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } + } + } + } + ], + "description": "Low level call in VaultedTemple.withdraw(address,address,uint256) (contracts/core/VaultedTemple.sol#52-61):\n\t- (sent) = address(to).call{value: amount}() (contracts/core/VaultedTemple.sol#56)\n", + "markdown": "Low level call in [VaultedTemple.withdraw(address,address,uint256)](contracts/core/VaultedTemple.sol#L52-L61):\n\t- [(sent) = address(to).call{value: amount}()](contracts/core/VaultedTemple.sol#L56)\n", + "first_markdown_element": "contracts/core/VaultedTemple.sol#L52-L61", + "id": "5cd237239261e23b4d84e1d8b374d18ba70d3249244b864e26e6ac2973377434", + "check": "low-level-calls", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "Exposure.revalToken (contracts/core/Exposure.sol#18) should be immutable \n", - "markdown": "[Exposure.revalToken](contracts/core/Exposure.sol#L18) should be immutable \n", - "first_markdown_element": "contracts/core/Exposure.sol#L18", - "id": "fab816826372462b2c7bad3911bbc931e061922f4242f1fbe256896d6a7f0bd0", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "templeStaking", - "source_mapping": { - "start": 474, - "length": 27, - "filename_relative": "contracts/deprecated/InstantExitQueue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/InstantExitQueue.sol", - "filename_short": "contracts/deprecated/InstantExitQueue.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 5, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "InstantExitQueue", - "source_mapping": { - "start": 428, - "length": 621, - "filename_relative": "contracts/deprecated/InstantExitQueue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/InstantExitQueue.sol", - "filename_short": "contracts/deprecated/InstantExitQueue.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } + }, + "signature": "_safeTransfer(address,address,uint256)" + } + }, + { + "type": "node", + "name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))", + "source_mapping": { + "start": 1972, + "length": 91, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 100 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_safeTransfer", + "source_mapping": { + "start": 1892, + "length": 284, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [49, 50, 51, 52], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "_safeTransfer(address,address,uint256)" } - ], - "description": "InstantExitQueue.templeStaking (contracts/deprecated/InstantExitQueue.sol#14) should be immutable \n", - "markdown": "[InstantExitQueue.templeStaking](contracts/deprecated/InstantExitQueue.sol#L14) should be immutable \n", - "first_markdown_element": "contracts/deprecated/InstantExitQueue.sol#L14", - "id": "9c17309231fa1c961af9992999f416fdbeee227f579c803bca020051827e90fa", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "templeToken", - "source_mapping": { - "start": 507, - "length": 18, - "filename_relative": "contracts/deprecated/InstantExitQueue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/InstantExitQueue.sol", - "filename_short": "contracts/deprecated/InstantExitQueue.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "InstantExitQueue", - "source_mapping": { - "start": 428, - "length": 621, - "filename_relative": "contracts/deprecated/InstantExitQueue.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/InstantExitQueue.sol", - "filename_short": "contracts/deprecated/InstantExitQueue.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } + } + } + } + ], + "description": "Low level call in TempleUniswapV2Pair._safeTransfer(address,address,uint256) (contracts/amm/TempleUniswapV2Pair.sol#49-52):\n\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/amm/TempleUniswapV2Pair.sol#50)\n", + "markdown": "Low level call in [TempleUniswapV2Pair._safeTransfer(address,address,uint256)](contracts/amm/TempleUniswapV2Pair.sol#L49-L52):\n\t- [(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))](contracts/amm/TempleUniswapV2Pair.sol#L50)\n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L49-L52", + "id": "1f83014450dcc4da7bf1e0bd2a6815416858bcab0fc682471618f34d8d10a334", + "check": "low-level-calls", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [ + { + "type": "contract", + "name": "TreasuryReservesVault", + "source_mapping": { + "start": 2150, + "length": 32023, + "filename_relative": "contracts/v2/TreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/v2/TreasuryReservesVault.sol", + "filename_short": "contracts/v2/TreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, + 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, + 774, 775, 776, 777, 778, 779 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + { + "type": "function", + "name": "borrowTokens", + "source_mapping": { + "start": 6801, + "length": 232, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [165, 166, 167, 168, 169, 170], + "starting_column": 5, + "ending_column": 7 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ITreasuryReservesVault", + "source_mapping": { + "start": 1896, + "length": 12436, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "InstantExitQueue.templeToken (contracts/deprecated/InstantExitQueue.sol#15) should be immutable \n", - "markdown": "[InstantExitQueue.templeToken](contracts/deprecated/InstantExitQueue.sol#L15) should be immutable \n", - "first_markdown_element": "contracts/deprecated/InstantExitQueue.sol#L15", - "id": "4bc8eb857194f43638152c5b33cdff3d00a791cb1e25a7c8b87380568a56432d", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "OG_TEMPLE", - "source_mapping": { - "start": 505, - "length": 25, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 3, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LockedOGTemple", - "source_mapping": { - "start": 213, - "length": 2143, - "filename_relative": "contracts/deprecated/LockedOGTemple.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/LockedOGTemple.sol", - "filename_short": "contracts/deprecated/LockedOGTemple.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } + }, + "signature": "borrowTokens(IERC20)" + } + }, + { + "type": "function", + "name": "strategyTokenCredits", + "source_mapping": { + "start": 7440, + "length": 94, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [182], + "starting_column": 5, + "ending_column": 99 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ITreasuryReservesVault", + "source_mapping": { + "start": 1896, + "length": 12436, + "filename_relative": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/interfaces/v2/ITreasuryReservesVault.sol", + "filename_short": "contracts/interfaces/v2/ITreasuryReservesVault.sol", + "is_dependency": false, + "lines": [ + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "LockedOGTemple.OG_TEMPLE (contracts/deprecated/LockedOGTemple.sol#21) should be immutable \n", - "markdown": "[LockedOGTemple.OG_TEMPLE](contracts/deprecated/LockedOGTemple.sol#L21) should be immutable \n", - "first_markdown_element": "contracts/deprecated/LockedOGTemple.sol#L21", - "id": "4ef3dbbbe39d794c60622b85b93543dac38feb730ac7a27e0fd13946fdf121ed", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "templeExposure", - "source_mapping": { - "start": 680, - "length": 30, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } + }, + "signature": "strategyTokenCredits(address,IERC20)" + } + } + ], + "description": "TreasuryReservesVault (contracts/v2/TreasuryReservesVault.sol#46-779) does not implement functions:\n\t- ITreasuryReservesVault.borrowTokens(IERC20) (contracts/interfaces/v2/ITreasuryReservesVault.sol#165-170)\n\t- ITreasuryReservesVault.strategyTokenCredits(address,IERC20) (contracts/interfaces/v2/ITreasuryReservesVault.sol#182)\n", + "markdown": "[TreasuryReservesVault](contracts/v2/TreasuryReservesVault.sol#L46-L779) does not implement functions:\n\t- [ITreasuryReservesVault.borrowTokens(IERC20)](contracts/interfaces/v2/ITreasuryReservesVault.sol#L165-L170)\n\t- [ITreasuryReservesVault.strategyTokenCredits(address,IERC20)](contracts/interfaces/v2/ITreasuryReservesVault.sol#L182)\n", + "first_markdown_element": "contracts/v2/TreasuryReservesVault.sol#L46-L779", + "id": "5ca38996b66ca642bbaf28ffb239e4c9ea40cee90fe7623ec08272ca68b3bfd3", + "check": "unimplemented-functions", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "kLast", + "source_mapping": { + "start": 1237, + "length": 17, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [29], + "starting_column": 5, + "ending_column": 22 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TempleUniswapV2Pair", + "source_mapping": { + "start": 440, + "length": 8733, + "filename_relative": "contracts/amm/TempleUniswapV2Pair.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/amm/TempleUniswapV2Pair.sol", + "filename_short": "contracts/amm/TempleUniswapV2Pair.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185 + ], + "starting_column": 1, + "ending_column": 0 } - ], - "description": "OpsManager.templeExposure (contracts/core/OpsManager.sol#25) should be immutable \n", - "markdown": "[OpsManager.templeExposure](contracts/core/OpsManager.sol#L25) should be immutable \n", - "first_markdown_element": "contracts/core/OpsManager.sol#L25", - "id": "75df57aa98c4e43a92acc34886e7c3bded86c7818b0198632aea4bad13a01f1b", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "vaultedTemple", - "source_mapping": { - "start": 716, - "length": 34, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 5, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "OpsManager", - "source_mapping": { - "start": 388, - "length": 6435, - "filename_relative": "contracts/core/OpsManager.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/core/OpsManager.sol", - "filename_short": "contracts/core/OpsManager.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } + } + } + } + ], + "description": "TempleUniswapV2Pair.kLast (contracts/amm/TempleUniswapV2Pair.sol#29) should be constant \n", + "markdown": "[TempleUniswapV2Pair.kLast](contracts/amm/TempleUniswapV2Pair.sol#L29) should be constant \n", + "first_markdown_element": "contracts/amm/TempleUniswapV2Pair.sol#L29", + "id": "67ff6bf1d9c5c18434ceb39e4ad633556104516f983fe5b005c96338bc0a2a06", + "check": "constable-states", + "impact": "Optimization", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "templars", + "source_mapping": { + "start": 1458, + "length": 23, + "filename_relative": "contracts/governance/ElderElection.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/ElderElection.sol", + "filename_short": "contracts/governance/ElderElection.sol", + "is_dependency": false, + "lines": [41], + "starting_column": 5, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ElderElection", + "source_mapping": { + "start": 906, + "length": 4629, + "filename_relative": "contracts/governance/ElderElection.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/ElderElection.sol", + "filename_short": "contracts/governance/ElderElection.sol", + "is_dependency": false, + "lines": [ + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "OpsManager.vaultedTemple (contracts/core/OpsManager.sol#26) should be immutable \n", - "markdown": "[OpsManager.vaultedTemple](contracts/core/OpsManager.sol#L26) should be immutable \n", - "first_markdown_element": "contracts/core/OpsManager.sol#L26", - "id": "cbfb5aa067eda81c42956084cfc18ece56924d1c25d1e76fb3414db4c2eda665", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "templars", - "source_mapping": { - "start": 501, - "length": 23, - "filename_relative": "contracts/governance/TemplarMetadata.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/TemplarMetadata.sol", - "filename_short": "contracts/governance/TemplarMetadata.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TemplarMetadata", - "source_mapping": { - "start": 235, - "length": 990, - "filename_relative": "contracts/governance/TemplarMetadata.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/governance/TemplarMetadata.sol", - "filename_short": "contracts/governance/TemplarMetadata.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } + } + } + } + ], + "description": "ElderElection.templars (contracts/governance/ElderElection.sol#41) should be immutable \n", + "markdown": "[ElderElection.templars](contracts/governance/ElderElection.sol#L41) should be immutable \n", + "first_markdown_element": "contracts/governance/ElderElection.sol#L41", + "id": "4f112a58dcc55f97428327a1a16bf19355d3278600b10377fef728f2183cae43", + "check": "immutable-states", + "impact": "Optimization", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "revalToken", + "source_mapping": { + "start": 537, + "length": 24, + "filename_relative": "contracts/core/Exposure.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Exposure.sol", + "filename_short": "contracts/core/Exposure.sol", + "is_dependency": false, + "lines": [18], + "starting_column": 5, + "ending_column": 29 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Exposure", + "source_mapping": { + "start": 362, + "length": 3840, + "filename_relative": "contracts/core/Exposure.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/Exposure.sol", + "filename_short": "contracts/core/Exposure.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "TemplarMetadata.templars (contracts/governance/TemplarMetadata.sol#18) should be immutable \n", - "markdown": "[TemplarMetadata.templars](contracts/governance/TemplarMetadata.sol#L18) should be immutable \n", - "first_markdown_element": "contracts/governance/TemplarMetadata.sol#L18", - "id": "fb75446c00258533d494a740145891e7f243532f7241392f874097ec646f9d9a", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "epochSizeSeconds", - "source_mapping": { - "start": 892, - "length": 31, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 5, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } + } + } + } + ], + "description": "Exposure.revalToken (contracts/core/Exposure.sol#18) should be immutable \n", + "markdown": "[Exposure.revalToken](contracts/core/Exposure.sol#L18) should be immutable \n", + "first_markdown_element": "contracts/core/Exposure.sol#L18", + "id": "fab816826372462b2c7bad3911bbc931e061922f4242f1fbe256896d6a7f0bd0", + "check": "immutable-states", + "impact": "Optimization", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "OG_TEMPLE", + "source_mapping": { + "start": 505, + "length": 25, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [21], + "starting_column": 3, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "LockedOGTemple", + "source_mapping": { + "start": 213, + "length": 2143, + "filename_relative": "contracts/deprecated/LockedOGTemple.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/deprecated/LockedOGTemple.sol", + "filename_short": "contracts/deprecated/LockedOGTemple.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "TempleStaking.epochSizeSeconds (contracts/deprecated/TempleStaking.sol#29) should be immutable \n", - "markdown": "[TempleStaking.epochSizeSeconds](contracts/deprecated/TempleStaking.sol#L29) should be immutable \n", - "first_markdown_element": "contracts/deprecated/TempleStaking.sol#L29", - "id": "be00f108f3c3750c27e746e72dc5bbd3c6b499ed89e6a88578513a2ba63afa6c", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "startTimestamp", - "source_mapping": { - "start": 988, - "length": 29, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 32 - ], - "starting_column": 5, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TempleStaking", - "source_mapping": { - "start": 464, - "length": 6184, - "filename_relative": "contracts/deprecated/TempleStaking.sol", - "filename_absolute": "/Users/frontier/git/temple/protocol/contracts/deprecated/TempleStaking.sol", - "filename_short": "contracts/deprecated/TempleStaking.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } + } + } + } + ], + "description": "LockedOGTemple.OG_TEMPLE (contracts/deprecated/LockedOGTemple.sol#21) should be immutable \n", + "markdown": "[LockedOGTemple.OG_TEMPLE](contracts/deprecated/LockedOGTemple.sol#L21) should be immutable \n", + "first_markdown_element": "contracts/deprecated/LockedOGTemple.sol#L21", + "id": "4ef3dbbbe39d794c60622b85b93543dac38feb730ac7a27e0fd13946fdf121ed", + "check": "immutable-states", + "impact": "Optimization", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "templeExposure", + "source_mapping": { + "start": 680, + "length": 30, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [25], + "starting_column": 5, + "ending_column": 35 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + } + ], + "description": "OpsManager.templeExposure (contracts/core/OpsManager.sol#25) should be immutable \n", + "markdown": "[OpsManager.templeExposure](contracts/core/OpsManager.sol#L25) should be immutable \n", + "first_markdown_element": "contracts/core/OpsManager.sol#L25", + "id": "75df57aa98c4e43a92acc34886e7c3bded86c7818b0198632aea4bad13a01f1b", + "check": "immutable-states", + "impact": "Optimization", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "vaultedTemple", + "source_mapping": { + "start": 716, + "length": 34, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [26], + "starting_column": 5, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OpsManager", + "source_mapping": { + "start": 388, + "length": 6455, + "filename_relative": "contracts/core/OpsManager.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/core/OpsManager.sol", + "filename_short": "contracts/core/OpsManager.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + } + ], + "description": "OpsManager.vaultedTemple (contracts/core/OpsManager.sol#26) should be immutable \n", + "markdown": "[OpsManager.vaultedTemple](contracts/core/OpsManager.sol#L26) should be immutable \n", + "first_markdown_element": "contracts/core/OpsManager.sol#L26", + "id": "cbfb5aa067eda81c42956084cfc18ece56924d1c25d1e76fb3414db4c2eda665", + "check": "immutable-states", + "impact": "Optimization", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "templars", + "source_mapping": { + "start": 501, + "length": 23, + "filename_relative": "contracts/governance/TemplarMetadata.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/TemplarMetadata.sol", + "filename_short": "contracts/governance/TemplarMetadata.sol", + "is_dependency": false, + "lines": [18], + "starting_column": 5, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TemplarMetadata", + "source_mapping": { + "start": 235, + "length": 990, + "filename_relative": "contracts/governance/TemplarMetadata.sol", + "filename_absolute": "/Users/frontier/git/temple-2/protocol/contracts/governance/TemplarMetadata.sol", + "filename_short": "contracts/governance/TemplarMetadata.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41 + ], + "starting_column": 1, + "ending_column": 2 } - ], - "description": "TempleStaking.startTimestamp (contracts/deprecated/TempleStaking.sol#32) should be immutable \n", - "markdown": "[TempleStaking.startTimestamp](contracts/deprecated/TempleStaking.sol#L32) should be immutable \n", - "first_markdown_element": "contracts/deprecated/TempleStaking.sol#L32", - "id": "d9ad00dc4bd11a15963bf64e199c033358a628bcbc86c74eab6172a22306314e", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - } -] \ No newline at end of file + } + } + } + ], + "description": "TemplarMetadata.templars (contracts/governance/TemplarMetadata.sol#18) should be immutable \n", + "markdown": "[TemplarMetadata.templars](contracts/governance/TemplarMetadata.sol#L18) should be immutable \n", + "first_markdown_element": "contracts/governance/TemplarMetadata.sol#L18", + "id": "fb75446c00258533d494a740145891e7f243532f7241392f874097ec646f9d9a", + "check": "immutable-states", + "impact": "Optimization", + "confidence": "High" + } +] diff --git a/protocol/test/amo/ramos.ts b/protocol/test/amo/ramos.ts index 5fc04f019..83d28f8f3 100644 --- a/protocol/test/amo/ramos.ts +++ b/protocol/test/amo/ramos.ts @@ -182,7 +182,14 @@ describe("RAMOS", async () => { await executor.sendTransaction({value: ONE_ETH, to: BAL_MULTISIG }); await executor.sendTransaction({value: ONE_ETH, to: await auraMultisig.getAddress()}); - tpiOracle = await new TreasuryPriceIndexOracle__factory(executor).deploy(rescuerAddress, executorAddress, ethers.utils.parseEther("0.97"), ethers.utils.parseEther("0.1"), 0); + tpiOracle = await new TreasuryPriceIndexOracle__factory(executor).deploy( + rescuerAddress, + executorAddress, + ethers.utils.parseEther("0.97"), + ethers.utils.parseEther("0.1"), + 0, + ethers.utils.parseEther("0.001"), + ); // create gauge and add pool on Aura let token, rewards: string; @@ -450,7 +457,14 @@ describe("RAMOS", async () => { }); it("sets treasury price index oracle", async () => { - const newOracle = await new TreasuryPriceIndexOracle__factory(executor).deploy(rescuerAddress, executorAddress, ethers.utils.parseEther("0.97"), ethers.utils.parseEther("0.1"), 0); + const newOracle = await new TreasuryPriceIndexOracle__factory(executor).deploy( + rescuerAddress, + executorAddress, + ethers.utils.parseEther("0.97"), + ethers.utils.parseEther("0.1"), + 0, + ethers.utils.parseEther("0.001"), + ); await expect(amo.setTpiOracle(newOracle.address)) .to.emit(amo, "TpiOracleSet") .withArgs(newOracle.address); @@ -781,7 +795,11 @@ describe("RAMOS", async () => { // skew price below TPI await singleSideDepositTemple(toAtto(50_000)); - await tpiOracle.setTreasuryPriceIndex(ethers.utils.parseEther("0.97")); + await tpiOracle.setTreasuryPriceIndexAt( + ethers.utils.parseEther("0.97"), + await blockTimestamp() + 2 + ); + await mineForwardSeconds(1); expect(await amo.treasuryPriceIndex()).to.equal(ethers.utils.parseEther("0.97")); await expect(amo.rebalanceDownExit(ONE_ETH, 1)).to.be.revertedWithCustomError(poolHelper, "NoRebalanceDown"); await amo.pause(); diff --git a/protocol/test/forge/v2/TreasuryPriceIndexOracle.t.sol b/protocol/test/forge/v2/TreasuryPriceIndexOracle.t.sol index 293e7d0a4..0ce82d940 100644 --- a/protocol/test/forge/v2/TreasuryPriceIndexOracle.t.sol +++ b/protocol/test/forge/v2/TreasuryPriceIndexOracle.t.sol @@ -9,64 +9,79 @@ import { ITreasuryPriceIndexOracle } from "contracts/interfaces/v2/ITreasuryPric contract TreasuryPriceIndexOracleTest is TempleTest { ITreasuryPriceIndexOracle public tpiOracle; - uint96 public defaultPrice = 0.97e18; - uint96 public defaultMaxDelta = 0.1e18; // 10 cents - uint32 public defaultCooldownSecs = 30; + uint96 public constant defaultTpi = 0.97e18; + uint96 public constant defaultMaxDelta = 0.1e18; // 10 cents + uint32 public constant defaultCooldownSecs = 30; + uint32 public constant defaultMinTargetTimeDelta = 1 weeks; // 1 week + uint96 public constant defaultMaxRateOfChange = uint96(0.01e18) / 1 days; // 1c / day - event TreasuryPriceIndexSet(uint96 oldTpi, uint96 newTpi); + event TreasuryPriceIndexSetAt(uint96 oldTpi, uint96 newTpiTarget, uint256 time); event TpiCooldownSet(uint32 cooldownSecs); event MaxTreasuryPriceIndexDeltaSet(uint256 maxDelta); + event MinTreasuryPriceIndexTargetTimeDeltaSet(uint32 maxTargetTimeDelta); + event MaxAbsTreasuryPriceIndexRateOfChangeSet(uint96 maxAbsRateOfChange); function setUp() public { - tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, defaultPrice, defaultMaxDelta, defaultCooldownSecs); + tpiOracle = new TreasuryPriceIndexOracle( + rescuer, + executor, + defaultTpi, + defaultMaxDelta, + defaultMinTargetTimeDelta, + defaultMaxRateOfChange + ); } - function checkTpiData(uint96 expectedCurrent, uint96 expectedPrevious, uint32 expectedUpdatedAt, uint32 expectedCooldown) internal { + function checkTpiData( + uint96 expectedStartingTpi, + uint32 expectedStartTime, + uint96 expectedTargetTpi, + uint32 expectedTargetTime, + int96 expectedTpiSlope + ) internal { ( - uint96 currentTpi, - uint96 previousTpi, - uint32 lastUpdatedAt, - uint32 cooldownSecs + uint96 startingTpi, + uint32 startTime, + uint96 targetTpi, + uint32 targetTime, + int96 tpiSlope ) = tpiOracle.tpiData(); - assertEq(currentTpi, expectedCurrent); - assertEq(previousTpi, expectedPrevious); - assertEq(lastUpdatedAt, expectedUpdatedAt); - assertEq(cooldownSecs, expectedCooldown); + assertEq(startingTpi, expectedStartingTpi, "startingTpi"); + assertEq(startTime, expectedStartTime, "startTime"); + assertEq(targetTpi, expectedTargetTpi, "targetTpi"); + assertEq(targetTime, expectedTargetTime, "targetTime"); + assertEq(tpiSlope, expectedTpiSlope, "tpiSlope"); } function test_initialize() public { - checkTpiData(defaultPrice, defaultPrice, uint32(block.timestamp), defaultCooldownSecs); + checkTpiData(defaultTpi, uint32(block.timestamp), defaultTpi, uint32(block.timestamp), 0); assertEq(tpiOracle.maxTreasuryPriceIndexDelta(), defaultMaxDelta); - assertEq(tpiOracle.treasuryPriceIndex(), defaultPrice); + assertEq(tpiOracle.minTreasuryPriceIndexTargetTimeDelta(), defaultMinTargetTimeDelta); + assertEq(tpiOracle.maxAbsTreasuryPriceIndexRateOfChange(), defaultMaxRateOfChange); + assertEq(tpiOracle.treasuryPriceIndex(), defaultTpi); assertEq(tpiOracle.TPI_DECIMALS(), 18); } - - function test_access_setTpiCooldown() public { - expectElevatedAccess(); - tpiOracle.setTpiCooldown(100); - } function test_access_setMaxTreasuryPriceIndexDelta() public { expectElevatedAccess(); tpiOracle.setMaxTreasuryPriceIndexDelta(0.15e18); } - - function test_access_setTreasuryPriceIndex() public { + + function test_access_setMinTreasuryPriceIndexTargetTimeDelta() public { expectElevatedAccess(); - tpiOracle.setTreasuryPriceIndex(1.02e18); + tpiOracle.setMinTreasuryPriceIndexTargetTimeDelta(uint32(block.timestamp+1)); } - function test_setTpiCooldown() public { - vm.startPrank(executor); - - vm.expectEmit(address(tpiOracle)); - emit TpiCooldownSet(uint32(99)); - - tpiOracle.setTpiCooldown(99); - (,,, uint32 cooldownSecs) = tpiOracle.tpiData(); - assertEq(cooldownSecs, 99); + function test_access_setMaxAbsTreasuryPriceIndexRateOfChange() public { + expectElevatedAccess(); + tpiOracle.setMaxAbsTreasuryPriceIndexRateOfChange(0.01e18, 1 days); } + function test_access_setTreasuryPriceIndexAt() public { + expectElevatedAccess(); + tpiOracle.setTreasuryPriceIndexAt(1.02e18, uint32(block.timestamp + 1 weeks)); + } + function test_setMaxTreasuryPriceIndexDelta() public { vm.startPrank(executor); @@ -77,113 +92,270 @@ contract TreasuryPriceIndexOracleTest is TempleTest { assertEq(tpiOracle.maxTreasuryPriceIndexDelta(), 0.11e18); } - function test_setTreasuryPriceIndex_successUp() public { - uint96 newTpi = 1.07e18; + function test_setMinTreasuryPriceIndexTargetTimeDelta() public { vm.startPrank(executor); vm.expectEmit(address(tpiOracle)); - emit TreasuryPriceIndexSet(defaultPrice, newTpi); + emit MinTreasuryPriceIndexTargetTimeDeltaSet(uint32(1 weeks)); - tpiOracle.setTreasuryPriceIndex(newTpi); - checkTpiData(newTpi, defaultPrice, uint32(block.timestamp), defaultCooldownSecs); + tpiOracle.setMinTreasuryPriceIndexTargetTimeDelta(uint32(1 weeks)); + assertEq(tpiOracle.minTreasuryPriceIndexTargetTimeDelta(), 1 weeks); } - function test_setTreasuryPriceIndex_successDown() public { - uint96 newTpi = 0.87e18; + function test_setMaxAbsTreasuryPriceIndexRateOfChange() public { vm.startPrank(executor); + uint96 expectedRate = uint96(0.05e18) / uint32(1 weeks); vm.expectEmit(address(tpiOracle)); - emit TreasuryPriceIndexSet(defaultPrice, newTpi); + emit MaxAbsTreasuryPriceIndexRateOfChangeSet(expectedRate); - tpiOracle.setTreasuryPriceIndex(newTpi); - checkTpiData(newTpi, defaultPrice, uint32(block.timestamp), defaultCooldownSecs); + tpiOracle.setMaxAbsTreasuryPriceIndexRateOfChange(0.05e18, uint32(1 weeks)); + assertEq(tpiOracle.maxAbsTreasuryPriceIndexRateOfChange(), expectedRate); } - function test_setTreasuryPriceIndex_breachDeltaUp() public { - uint96 newTpi = 1.0700001e18; + function test_setTreasuryPriceIndexAt_immediate_successUp() public { + uint96 newTpi = 1.07e18; vm.startPrank(executor); + tpiOracle.setMinTreasuryPriceIndexTargetTimeDelta(0); + tpiOracle.setMaxAbsTreasuryPriceIndexRateOfChange(1e18, 1); + + uint32 setTime = uint32(block.timestamp); + uint32 targetTime = setTime+1; + + vm.expectEmit(address(tpiOracle)); + emit TreasuryPriceIndexSetAt(defaultTpi, newTpi, targetTime); - vm.expectRevert(abi.encodeWithSelector(ITreasuryPriceIndexOracle.BreachedMaxTpiDelta.selector, defaultPrice, newTpi, defaultMaxDelta)); - tpiOracle.setTreasuryPriceIndex(newTpi); + tpiOracle.setTreasuryPriceIndexAt(newTpi, targetTime); + checkTpiData(defaultTpi, setTime, newTpi, targetTime, 1e17); + + // The same after the targetTime + skip(10 days); + checkTpiData(defaultTpi, setTime, newTpi, targetTime, 1e17); } - function test_setTreasuryPriceIndex_breachDeltaDown() public { - uint96 newTpi = 0.8699999e18; + function test_setTreasuryPriceIndexAt_immediate_successDown() public { + uint96 newTpi = 0.87e18; vm.startPrank(executor); + tpiOracle.setMinTreasuryPriceIndexTargetTimeDelta(0); + tpiOracle.setMaxAbsTreasuryPriceIndexRateOfChange(1e18, 1); - vm.expectRevert(abi.encodeWithSelector(ITreasuryPriceIndexOracle.BreachedMaxTpiDelta.selector, defaultPrice, newTpi, defaultMaxDelta)); - tpiOracle.setTreasuryPriceIndex(newTpi); + uint32 setTime = uint32(block.timestamp); + uint32 targetTime = setTime+1; + + vm.expectEmit(address(tpiOracle)); + emit TreasuryPriceIndexSetAt(defaultTpi, newTpi, targetTime); + + tpiOracle.setTreasuryPriceIndexAt(newTpi, targetTime); + checkTpiData(defaultTpi, setTime, newTpi, targetTime, -1e17); + + // The same after the targetTime + skip(10 days); + checkTpiData(defaultTpi, setTime, newTpi, targetTime, -1e17); } - function test_treasuryPriceIndex_beforeCooldown() public { - uint96 newTpi = 1.05e18; + function test_setTreasuryPriceIndexAt_breachDeltaUp() public { + uint96 newTpi = defaultTpi + defaultMaxDelta + 1; vm.startPrank(executor); - tpiOracle.setTreasuryPriceIndex(newTpi); - vm.warp(block.timestamp + defaultCooldownSecs-1); - assertEq(tpiOracle.treasuryPriceIndex(), defaultPrice); + tpiOracle.setMaxAbsTreasuryPriceIndexRateOfChange(1e18, 1); + + vm.expectRevert(abi.encodeWithSelector(ITreasuryPriceIndexOracle.BreachedMaxTpiDelta.selector, defaultTpi, newTpi, defaultMaxDelta)); + tpiOracle.setTreasuryPriceIndexAt(newTpi, uint32(block.timestamp) + 1 weeks); + + newTpi -= 1; + tpiOracle.setTreasuryPriceIndexAt(newTpi, uint32(block.timestamp) + 1 weeks); } - function test_treasuryPriceIndex_atCooldown() public { - uint96 newTpi = 1.05e18; + function test_setTreasuryPriceIndexAt_breachDeltaDown() public { + uint96 newTpi = defaultTpi - defaultMaxDelta - 1; vm.startPrank(executor); - tpiOracle.setTreasuryPriceIndex(newTpi); - vm.warp(block.timestamp + defaultCooldownSecs); - assertEq(tpiOracle.treasuryPriceIndex(), newTpi); + tpiOracle.setMaxAbsTreasuryPriceIndexRateOfChange(1e18, 1); + + vm.expectRevert(abi.encodeWithSelector(ITreasuryPriceIndexOracle.BreachedMaxTpiDelta.selector, defaultTpi, newTpi, defaultMaxDelta)); + tpiOracle.setTreasuryPriceIndexAt(newTpi, uint32(block.timestamp) + 1 weeks); + + newTpi += 1; + tpiOracle.setTreasuryPriceIndexAt(newTpi, uint32(block.timestamp) + 1 weeks); } - function test_treasuryPriceIndex_afterCooldown() public { - uint96 newTpi = 1.05e18; + function test_setTreasuryPriceIndexAt_breachMinDateDelta() public { + uint96 newTpi = 1.07e18; vm.startPrank(executor); - tpiOracle.setTreasuryPriceIndex(newTpi); - vm.warp(block.timestamp + defaultCooldownSecs+1); - assertEq(tpiOracle.treasuryPriceIndex(), newTpi); + tpiOracle.setMaxAbsTreasuryPriceIndexRateOfChange(1e18, 1); + + // targetTime < now + uint32 targetTime = uint32(block.timestamp)-1; + vm.expectRevert(abi.encodeWithSelector(ITreasuryPriceIndexOracle.BreachedMinDateDelta.selector, targetTime, block.timestamp, defaultMinTargetTimeDelta)); + tpiOracle.setTreasuryPriceIndexAt(newTpi, targetTime); + + // targetTime <= now + targetTime = uint32(block.timestamp); + vm.expectRevert(abi.encodeWithSelector(ITreasuryPriceIndexOracle.BreachedMinDateDelta.selector, targetTime, block.timestamp, defaultMinTargetTimeDelta)); + tpiOracle.setTreasuryPriceIndexAt(newTpi, targetTime); + + // (targetTime - now) < minTreasuryPriceIndexTargetTimeDelta + targetTime = uint32(block.timestamp) + 7 days - 1; + vm.expectRevert(abi.encodeWithSelector(ITreasuryPriceIndexOracle.BreachedMinDateDelta.selector, targetTime, block.timestamp, defaultMinTargetTimeDelta)); + tpiOracle.setTreasuryPriceIndexAt(newTpi, targetTime); + + // Works with a 7 day target date + targetTime = uint32(block.timestamp) + 7 days; + tpiOracle.setTreasuryPriceIndexAt(newTpi, targetTime); + checkTpiData(defaultTpi, uint32(block.timestamp), newTpi, targetTime, 165343915343); } - function test_treasuryPriceIndex_zeroCooldown() public { - uint96 newTpi = 1.05e18; + function test_setTreasuryPriceIndexAt_breachMaxTpiRateOfChange() public { vm.startPrank(executor); - tpiOracle.setTpiCooldown(0); - tpiOracle.setTreasuryPriceIndex(newTpi); - assertEq(tpiOracle.treasuryPriceIndex(), newTpi); + tpiOracle.setMaxTreasuryPriceIndexDelta(1e18); + tpiOracle.setMaxAbsTreasuryPriceIndexRateOfChange(0.30e18, 30 days); + + vm.expectRevert(abi.encodeWithSelector(ITreasuryPriceIndexOracle.BreachedMaxTpiRateOfChange.selector, uint96(0.3e18 + 1e7) / 30 days, uint96(0.3e18) / 30 days)); + tpiOracle.setTreasuryPriceIndexAt(defaultTpi + 0.30e18 + 1e7, uint32(block.timestamp + 30 days)); + + tpiOracle.setTreasuryPriceIndexAt(defaultTpi + 0.30e18, uint32(block.timestamp + 30 days)); } - function test_treasuryPriceIndex_reset_beforeCooldown() public { - uint96 newTpi = 1.05e18; + function test_setTreasuryPriceIndexAt_flatAtTargetTime() public { + uint96 newTpi = 1.06e18; vm.startPrank(executor); - tpiOracle.setTreasuryPriceIndex(newTpi); - vm.warp(block.timestamp + defaultCooldownSecs-1); - uint96 newTpi2 = 1.07e18; - tpiOracle.setTreasuryPriceIndex(newTpi2); - assertEq(tpiOracle.treasuryPriceIndex(), defaultPrice); + tpiOracle.setMinTreasuryPriceIndexTargetTimeDelta(0); + tpiOracle.setMaxAbsTreasuryPriceIndexRateOfChange(1e18, 1); + + tpiOracle.setTreasuryPriceIndexAt(newTpi, uint32(block.timestamp)+1); + // check at target date we're at the target TPI + vm.warp(block.timestamp + 1); + uint96 actualTpi = tpiOracle.treasuryPriceIndex(); + assertEq(newTpi, actualTpi); + // check in future price has remained static + vm.warp(block.timestamp + 1 days); + actualTpi = tpiOracle.treasuryPriceIndex(); + assertEq(newTpi, actualTpi); } - function test_treasuryPriceIndex_reset_atCooldown() public { - uint96 newTpi = 1.05e18; + function test_setTreasuryPriceIndexAt_increasesAtExpectedRateSecs() public { + uint96 newTpi = 1.07e18; vm.startPrank(executor); - tpiOracle.setTreasuryPriceIndex(newTpi); - vm.warp(block.timestamp + defaultCooldownSecs); - uint96 newTpi2 = 1.07e18; - tpiOracle.setTreasuryPriceIndex(newTpi2); - assertEq(tpiOracle.treasuryPriceIndex(), newTpi); + tpiOracle.setMinTreasuryPriceIndexTargetTimeDelta(0); + tpiOracle.setMaxAbsTreasuryPriceIndexRateOfChange(1e18, 1); + + uint96 currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(defaultTpi, currentTpi); + tpiOracle.setTreasuryPriceIndexAt(newTpi, uint32(block.timestamp) + 4); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(defaultTpi, currentTpi); + vm.warp(2); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(9.95e17, currentTpi); + vm.warp(3); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(1.02e18, currentTpi); + vm.warp(4); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(1.045e18, currentTpi); + vm.warp(5); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(1.07e18, currentTpi); } - function test_treasuryPriceIndex_reset_afterCooldown() public { - uint96 newTpi = 1.05e18; + function test_setTreasuryPriceIndexAt_increasesAtExpectedRateYear() public { + // TPI @ now = 1.5e18 + // TPI @ 365 days = 2.5e18 + uint96 tpiStart = 1.5e18; + uint96 tpiDelta = 1e18; + uint256 startingBlock = 1704027600; + uint256 MAX_ABS_DELTA = 1e8; // Small (expected) rounding diffs + + vm.warp(startingBlock); + tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, tpiStart, 10e18, 1 days, defaultMaxRateOfChange); + vm.startPrank(executor); - tpiOracle.setTreasuryPriceIndex(newTpi); - vm.warp(block.timestamp + defaultCooldownSecs+1); - uint96 newTpi2 = 1.07e18; - tpiOracle.setTreasuryPriceIndex(newTpi2); - assertEq(tpiOracle.treasuryPriceIndex(), newTpi); + tpiOracle.setTreasuryPriceIndexAt(tpiStart + tpiDelta, uint32(block.timestamp) + 365 days); + + uint256 currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(currentTpi, tpiStart); + + // 1/10th in + vm.warp(startingBlock + 365 days / 10); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertApproxEqAbs(currentTpi, tpiStart + tpiDelta / 10, MAX_ABS_DELTA); + + // half way in + vm.warp(startingBlock + 365 days / 2); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertApproxEqAbs(currentTpi, tpiStart + tpiDelta / 2, MAX_ABS_DELTA); + + // 9/10ths in + vm.warp(startingBlock + 365 days * 9 / 10); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertApproxEqAbs(currentTpi, tpiStart + tpiDelta * 9 / 10, MAX_ABS_DELTA); + + // 1 second before end + vm.warp(startingBlock + 365 days - 1); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(currentTpi, 2.499999968266096017e18); // just less than tpiStart+tpiDelta + + // At end + vm.warp(startingBlock + 365 days); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(currentTpi, tpiStart + tpiDelta); + + // At end + 1 day + vm.warp(startingBlock + 365 days + 1 days); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(currentTpi, tpiStart + tpiDelta); + } + + function test_setTreasuryPriceIndexAt_decreasesAtExpectedRateYear() public { + // TPI @ now = 2.5e18 + // TPI @ 365 days = 1.5e18 + uint96 tpiStart = 2.5e18; + uint96 tpiDelta = 1e18; + uint256 startingBlock = 1704027600; + uint256 MAX_ABS_DELTA = 1e8; // Small (expected) rounding diffs + + vm.warp(startingBlock); + tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, tpiStart, 10e18, 1 days, defaultMaxRateOfChange); + + vm.startPrank(executor); + tpiOracle.setTreasuryPriceIndexAt(tpiStart - tpiDelta, uint32(block.timestamp) + 365 days); + + uint256 currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(currentTpi, tpiStart); + + // 1/10th in + vm.warp(startingBlock + 365 days / 10); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertApproxEqAbs(currentTpi, tpiStart - tpiDelta / 10, MAX_ABS_DELTA); + + // half way in + vm.warp(startingBlock + 365 days / 2); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertApproxEqAbs(currentTpi, tpiStart - tpiDelta / 2, MAX_ABS_DELTA); + + // 9/10ths in + vm.warp(startingBlock + 365 days * 9 / 10); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertApproxEqAbs(currentTpi, tpiStart - tpiDelta * 9 / 10, MAX_ABS_DELTA); + + // At end + vm.warp(startingBlock + 365 days); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(currentTpi, tpiStart - tpiDelta); + + // At end + 1 day + vm.warp(startingBlock + 365 days + 1 days); + currentTpi = tpiOracle.treasuryPriceIndex(); + assertEq(currentTpi, tpiStart - tpiDelta); } - function test_treasuryPriceIndex_reset_zeroCooldown() public { - uint96 newTpi = 1.05e18; + function test_setTreasuryPriceIndexAt_keepTheSame() public { + assertEq(tpiOracle.treasuryPriceIndex(), defaultTpi); + vm.startPrank(executor); - tpiOracle.setTpiCooldown(0); - tpiOracle.setTreasuryPriceIndex(newTpi); - uint96 newTpi2 = 1.07e18; - tpiOracle.setTreasuryPriceIndex(newTpi2); - assertEq(tpiOracle.treasuryPriceIndex(), newTpi2); + tpiOracle.setTreasuryPriceIndexAt(defaultTpi, uint32(block.timestamp) + 365 days); + + checkTpiData(defaultTpi, uint32(block.timestamp), defaultTpi, uint32(block.timestamp) + 365 days, 0); + + skip(100 days); + assertEq(tpiOracle.treasuryPriceIndex(), defaultTpi); } -} \ No newline at end of file +} diff --git a/protocol/test/forge/v2/strategies/AbstractStrategy.t.sol b/protocol/test/forge/v2/strategies/AbstractStrategy.t.sol index aafdb11b2..9fc714f5c 100644 --- a/protocol/test/forge/v2/strategies/AbstractStrategy.t.sol +++ b/protocol/test/forge/v2/strategies/AbstractStrategy.t.sol @@ -31,7 +31,7 @@ contract AbstractStrategyTestBase is TempleTest { function _setUp() internal { dUSD = new TempleDebtToken("Temple Debt", "dUSD", rescuer, executor, DEFAULT_BASE_INTEREST); - tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0); + tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0, 1e16); trv = new TreasuryReservesVault(rescuer, executor, address(tpiOracle)); strategy = new MockStrategy(rescuer, executor, "MockStrategy", address(trv), address(dai), address(weth), address(temple), reportedAssets); diff --git a/protocol/test/forge/v2/strategies/DsrBaseStrategy.t.sol b/protocol/test/forge/v2/strategies/DsrBaseStrategy.t.sol index e9eee0477..c9c052ae5 100644 --- a/protocol/test/forge/v2/strategies/DsrBaseStrategy.t.sol +++ b/protocol/test/forge/v2/strategies/DsrBaseStrategy.t.sol @@ -49,7 +49,7 @@ contract DsrBaseStrategyTestBase is TempleTest { fork("mainnet", 16675385); dUSD = new TempleDebtToken("Temple Debt", "dUSD", rescuer, executor, DEFAULT_BASE_INTEREST); - tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0); + tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0, 1e16); trv = new TreasuryReservesVault(rescuer, executor, address(tpiOracle)); strategy = new DsrBaseStrategy(rescuer, executor, "DsrBaseStrategy", address(trv), address(dai), address(daiJoin), address(pot)); diff --git a/protocol/test/forge/v2/strategies/DsrBaseStrategyTestnet.t.sol b/protocol/test/forge/v2/strategies/DsrBaseStrategyTestnet.t.sol index 21ee6b94c..1eb37fc7a 100644 --- a/protocol/test/forge/v2/strategies/DsrBaseStrategyTestnet.t.sol +++ b/protocol/test/forge/v2/strategies/DsrBaseStrategyTestnet.t.sol @@ -44,7 +44,7 @@ contract DsrBaseStrategyTestnetTestBase is TempleTest { function _setUp() internal { reportedAssets = [address(dai), address(frax), address(0)]; dUSD = new TempleDebtToken("Temple Debt", "dUSD", rescuer, executor, DEFAULT_BASE_INTEREST); - tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0); + tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0, 1e16); trv = new TreasuryReservesVault(rescuer, executor, address(tpiOracle)); strategy = new DsrBaseStrategyTestnet(rescuer, executor, "DsrBaseStrategy", address(trv), address(dai), 0.01e18); diff --git a/protocol/test/forge/v2/strategies/GnosisStrategy.t.sol b/protocol/test/forge/v2/strategies/GnosisStrategy.t.sol index 51d68b2c6..479717897 100644 --- a/protocol/test/forge/v2/strategies/GnosisStrategy.t.sol +++ b/protocol/test/forge/v2/strategies/GnosisStrategy.t.sol @@ -37,7 +37,7 @@ contract GnosisStrategyTestBase is TempleTest { function _setUp() internal { dUSD = new TempleDebtToken("Temple Debt", "dUSD", rescuer, executor, DEFAULT_BASE_INTEREST); - tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0); + tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0, 1e16); trv = new TreasuryReservesVault(rescuer, executor, address(tpiOracle)); circuitBreakerProxy = new TempleCircuitBreakerProxy(rescuer, executor); strategy = new GnosisStrategy(rescuer, executor, "GnosisStrategy", address(trv), gnosisSafeWallet, address(circuitBreakerProxy)); diff --git a/protocol/test/forge/v2/strategies/RamosStrategy.t.sol b/protocol/test/forge/v2/strategies/RamosStrategy.t.sol index 1cadb91f9..84ee0eb26 100644 --- a/protocol/test/forge/v2/strategies/RamosStrategy.t.sol +++ b/protocol/test/forge/v2/strategies/RamosStrategy.t.sol @@ -71,7 +71,7 @@ contract RamosStrategyTestBase is TempleTest { dUSD = new TempleDebtToken("Temple Debt USD", "dUSD", rescuer, executor, DEFAULT_BASE_INTEREST); dTEMPLE = new TempleDebtToken("Temple Debt TEMPLE", "dTEMPLE", rescuer, executor, DEFAULT_BASE_INTEREST); - tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0); + tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0, 1e16); trv = new TreasuryReservesVault(rescuer, executor, address(tpiOracle)); templeBaseStrategy = new TempleTokenBaseStrategy(rescuer, executor, "TempleTokenBaseStrategy", address(trv), address(temple)); diff --git a/protocol/test/forge/v2/strategies/TempleTokenBaseStrategy.t.sol b/protocol/test/forge/v2/strategies/TempleTokenBaseStrategy.t.sol index 52dd123d2..29848ea13 100644 --- a/protocol/test/forge/v2/strategies/TempleTokenBaseStrategy.t.sol +++ b/protocol/test/forge/v2/strategies/TempleTokenBaseStrategy.t.sol @@ -31,7 +31,7 @@ contract TempleTokenBaseStrategyTestBase is TempleTest { // 0% interest for dTEMPLE dTEMPLE = new TempleDebtToken("Temple Debt TEMPLE", "dTEMPLE", rescuer, executor, 0); - tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0); + tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0, 1e16); trv = new TreasuryReservesVault(rescuer, executor, address(tpiOracle)); strategy = new TempleTokenBaseStrategy(rescuer, executor, "TempleTokenBaseStrategy", address(trv), address(temple)); diff --git a/protocol/test/forge/v2/templeLineOfCredit/TlcBaseTest.t.sol b/protocol/test/forge/v2/templeLineOfCredit/TlcBaseTest.t.sol index abda5786e..8b536bab1 100644 --- a/protocol/test/forge/v2/templeLineOfCredit/TlcBaseTest.t.sol +++ b/protocol/test/forge/v2/templeLineOfCredit/TlcBaseTest.t.sol @@ -67,7 +67,7 @@ contract TlcBaseTest is TempleTest, ITlcDataTypes, ITlcEventsAndErrors { vm.label(address(dTEMPLE), "dTEMPLE"); } - tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, templePrice, 0.1e18, 0); + tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, templePrice, 0.1e18, 0, 1e16); trv = new TreasuryReservesVault(rescuer, executor, address(tpiOracle)); daiInterestRateModel = new LinearWithKinkInterestRateModel( diff --git a/protocol/test/forge/v2/templeLineOfCredit/TlcLiquidations.t.sol b/protocol/test/forge/v2/templeLineOfCredit/TlcLiquidations.t.sol index dfa40231b..ca453cee7 100644 --- a/protocol/test/forge/v2/templeLineOfCredit/TlcLiquidations.t.sol +++ b/protocol/test/forge/v2/templeLineOfCredit/TlcLiquidations.t.sol @@ -118,7 +118,8 @@ contract TempleLineOfCreditTestBatchLiquidate is TlcBaseTest { // TLC drops (exploit) and a day passes tpiOracle.setRescueMode(true); - tpiOracle.setTreasuryPriceIndex(0.9e18); + tpiOracle.setMaxAbsTreasuryPriceIndexRateOfChange(1e18, 1); + tpiOracle.setTreasuryPriceIndexAt(0.9e18, uint32(block.timestamp + 1)); vm.warp(block.timestamp + 1 days); // Alice is now under water diff --git a/protocol/test/forge/v2/treasuryReservesVault/TrvBase.t.sol b/protocol/test/forge/v2/treasuryReservesVault/TrvBase.t.sol index dceda1ae8..67a922c59 100644 --- a/protocol/test/forge/v2/treasuryReservesVault/TrvBase.t.sol +++ b/protocol/test/forge/v2/treasuryReservesVault/TrvBase.t.sol @@ -37,7 +37,7 @@ contract TreasuryReservesVaultTestBase is TempleTest { dUSD = new TempleDebtToken("Temple Debt USD", "dUSD", rescuer, executor, DSR_INTEREST); dTEMPLE = new TempleDebtToken("Temple Debt TEMPLE", "dTEMPLE", rescuer, executor, 0); dETH = new TempleDebtToken("Temple Debt ETH", "dETH", rescuer, executor, ETH_INTEREST); - tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0); + tpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0.97e18, 0.1e18, 0, 1e16); trv = new TreasuryReservesVault(rescuer, executor, address(tpiOracle)); strategy = new MockStrategy(rescuer, executor, "MockStrategy", address(trv), address(dai), address(weth), address(temple), reportedAssets); @@ -240,7 +240,7 @@ contract TreasuryReservesVaultTestAdmin is TreasuryReservesVaultTestBase { trv.setTpiOracle(address(0)); // An oracle with a TPI=0 fails - TreasuryPriceIndexOracle newTpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0, 0.1e18, 0); + TreasuryPriceIndexOracle newTpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 0, 0.1e18, 0, 1e16); vm.expectRevert(abi.encodeWithSelector(CommonEventsAndErrors.InvalidParam.selector)); trv.setTpiOracle(address(newTpiOracle)); @@ -249,7 +249,7 @@ contract TreasuryReservesVaultTestAdmin is TreasuryReservesVaultTestBase { trv.setTpiOracle(address(bob)); // Success - newTpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 1.23e18, 0.1e18, 0); + newTpiOracle = new TreasuryPriceIndexOracle(rescuer, executor, 1.23e18, 0.1e18, 0, 1e16); vm.expectEmit(address(trv)); emit TpiOracleSet(address(newTpiOracle)); trv.setTpiOracle(address(newTpiOracle));