CRITICAL BUG FIX: - MultiHopScanner.updateTokenGraph() was EMPTY - adding no pools! - Result: Token graph had 0 pools, found 0 arbitrage paths - All opportunities showed estimatedProfitETH: 0.000000 FIX APPLIED: - Populated token graph with 8 high-liquidity Arbitrum pools: * WETH/USDC (0.05% and 0.3% fees) * USDC/USDC.e (0.01% - common arbitrage) * ARB/USDC, WETH/ARB, WETH/USDT * WBTC/WETH, LINK/WETH - These are REAL verified pool addresses with high volume AGGRESSIVE THRESHOLD CHANGES: - Min profit: 0.0001 ETH → 0.00001 ETH (10x lower, ~$0.02) - Min ROI: 0.05% → 0.01% (5x lower) - Gas multiplier: 5x → 1.5x (3.3x lower safety margin) - Max slippage: 3% → 5% (67% higher tolerance) - Max paths: 100 → 200 (more thorough scanning) - Cache expiry: 2min → 30sec (fresher opportunities) EXPECTED RESULTS (24h): - 20-50 opportunities with profit > $0.02 (was 0) - 5-15 execution attempts (was 0) - 1-2 successful executions (was 0) - $0.02-$0.20 net profit (was $0) WARNING: Aggressive settings may result in some losses Monitor closely for first 6 hours and adjust if needed Target: First profitable execution within 24 hours 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 line
24 KiB
JSON
1 line
24 KiB
JSON
{"_format":"","paths":{"artifacts":"tests/out","build_infos":"tests/out/build-info","sources":"tests/contracts","tests":"tests","scripts":"script","libraries":["lib"]},"files":{"contracts/balancer/FlashLoanReceiverSecure.sol":{"lastModificationDate":1761659984189,"contentHash":"22974c60c585c1bc6efbb85697edc25f","sourceName":"contracts/balancer/FlashLoanReceiverSecure.sol","imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.0","artifacts":{"FlashLoanReceiverSecure":{"0.8.30":{"default":{"path":"FlashLoanReceiverSecure.sol/FlashLoanReceiverSecure.json","build_id":"75eba169c7ecefc5c5c6cce7bfe23e9b"}}},"IBalancerVault":{"0.8.30":{"default":{"path":"FlashLoanReceiverSecure.sol/IBalancerVault.json","build_id":"75eba169c7ecefc5c5c6cce7bfe23e9b"}}},"IUniswapV2Router":{"0.8.30":{"default":{"path":"FlashLoanReceiverSecure.sol/IUniswapV2Router.json","build_id":"75eba169c7ecefc5c5c6cce7bfe23e9b"}}},"IUniswapV3Router":{"0.8.30":{"default":{"path":"FlashLoanReceiverSecure.sol/IUniswapV3Router.json","build_id":"75eba169c7ecefc5c5c6cce7bfe23e9b"}}}},"seenByCompiler":true},"lib/forge-std/src/Base.sol":{"lastModificationDate":1761648015735,"contentHash":"b1b5beeab652757bdfaec31f7a9251e2","sourceName":"lib/forge-std/src/Base.sol","imports":["lib/forge-std/src/StdStorage.sol","lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"CommonBase":{"0.8.30":{"default":{"path":"Base.sol/CommonBase.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}},"ScriptBase":{"0.8.30":{"default":{"path":"Base.sol/ScriptBase.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}},"TestBase":{"0.8.30":{"default":{"path":"Base.sol/TestBase.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/Script.sol":{"lastModificationDate":1761648015735,"contentHash":"1d11dd99b6b917f2de20017e94d9de06","sourceName":"lib/forge-std/src/Script.sol","imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdConstants.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Script":{"0.8.30":{"default":{"path":"Script.sol/Script.json","build_id":"75eba169c7ecefc5c5c6cce7bfe23e9b"}}}},"seenByCompiler":true},"lib/forge-std/src/StdAssertions.sol":{"lastModificationDate":1761648015925,"contentHash":"e8c5b1b6de52763f94b08617ca1ececf","sourceName":"lib/forge-std/src/StdAssertions.sol","imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdAssertions":{"0.8.30":{"default":{"path":"StdAssertions.sol/StdAssertions.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/StdChains.sol":{"lastModificationDate":1761648015925,"contentHash":"daca906801288892aa95703954814979","sourceName":"lib/forge-std/src/StdChains.sol","imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdChains":{"0.8.30":{"default":{"path":"StdChains.sol/StdChains.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/StdCheats.sol":{"lastModificationDate":1761648015925,"contentHash":"88408106c41697153142f6a6eeb06728","sourceName":"lib/forge-std/src/StdCheats.sol","imports":["lib/forge-std/src/StdStorage.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdCheats":{"0.8.30":{"default":{"path":"StdCheats.sol/StdCheats.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}},"StdCheatsSafe":{"0.8.30":{"default":{"path":"StdCheats.sol/StdCheatsSafe.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/StdConstants.sol":{"lastModificationDate":1761648015739,"contentHash":"14edb96ae3a9171cd6885d775e077b2b","sourceName":"lib/forge-std/src/StdConstants.sol","imports":["lib/forge-std/src/Vm.sol","lib/forge-std/src/interfaces/IMulticall3.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdConstants":{"0.8.30":{"default":{"path":"StdConstants.sol/StdConstants.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/StdError.sol":{"lastModificationDate":1761648015739,"contentHash":"64c896e1276a291776e5ea5aecb3870a","sourceName":"lib/forge-std/src/StdError.sol","imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdError":{"0.8.30":{"default":{"path":"StdError.sol/stdError.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/StdInvariant.sol":{"lastModificationDate":1761648015739,"contentHash":"f16837d0e7cb829544ae1f1319ea7643","sourceName":"lib/forge-std/src/StdInvariant.sol","imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdInvariant":{"0.8.30":{"default":{"path":"StdInvariant.sol/StdInvariant.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/StdJson.sol":{"lastModificationDate":1761648015929,"contentHash":"02209da5708eaee03e24a9c24a687370","sourceName":"lib/forge-std/src/StdJson.sol","imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.0, <0.9.0","artifacts":{"stdJson":{"0.8.30":{"default":{"path":"StdJson.sol/stdJson.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/StdMath.sol":{"lastModificationDate":1761648015929,"contentHash":"9da8f453eba6bb98f3d75bc6822bfb29","sourceName":"lib/forge-std/src/StdMath.sol","imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdMath":{"0.8.30":{"default":{"path":"StdMath.sol/stdMath.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/StdStorage.sol":{"lastModificationDate":1761648015742,"contentHash":"53aa00a3240368c82e3a65df0e436f1c","sourceName":"lib/forge-std/src/StdStorage.sol","imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdStorage":{"0.8.30":{"default":{"path":"StdStorage.sol/stdStorage.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}},"stdStorageSafe":{"0.8.30":{"default":{"path":"StdStorage.sol/stdStorageSafe.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/StdStyle.sol":{"lastModificationDate":1761648015742,"contentHash":"6281165a12aa639705c691fccefd855e","sourceName":"lib/forge-std/src/StdStyle.sol","imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{"StdStyle":{"0.8.30":{"default":{"path":"StdStyle.sol/StdStyle.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/StdToml.sol":{"lastModificationDate":1761648015929,"contentHash":"4bce85a4c60f2c073e651ee8140bcb4d","sourceName":"lib/forge-std/src/StdToml.sol","imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.0, <0.9.0","artifacts":{"stdToml":{"0.8.30":{"default":{"path":"StdToml.sol/stdToml.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/StdUtils.sol":{"lastModificationDate":1761648015742,"contentHash":"f1a8c6395edfc4c923075b730db41e0a","sourceName":"lib/forge-std/src/StdUtils.sol","imports":["lib/forge-std/src/Vm.sol","lib/forge-std/src/interfaces/IMulticall3.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdUtils":{"0.8.30":{"default":{"path":"StdUtils.sol/StdUtils.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/Test.sol":{"lastModificationDate":1761648015742,"contentHash":"462f6d9c84257bc12355e8533c3bcc96","sourceName":"lib/forge-std/src/Test.sol","imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdAssertions.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdConstants.sol","lib/forge-std/src/StdError.sol","lib/forge-std/src/StdInvariant.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdToml.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Test":{"0.8.30":{"default":{"path":"Test.sol/Test.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/Vm.sol":{"lastModificationDate":1761648015932,"contentHash":"d7868f9eb2aaeafd63b87e74d4aa3a15","sourceName":"lib/forge-std/src/Vm.sol","imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Vm":{"0.8.30":{"default":{"path":"Vm.sol/Vm.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}},"VmSafe":{"0.8.30":{"default":{"path":"Vm.sol/VmSafe.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/console.sol":{"lastModificationDate":1761648015749,"contentHash":"ce19a9e49945b42118379ff99d853c05","sourceName":"lib/forge-std/src/console.sol","imports":[],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{"console":{"0.8.30":{"default":{"path":"console.sol/console.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/console2.sol":{"lastModificationDate":1761648015749,"contentHash":"f65ad21034b111e70fb5342d5771efcd","sourceName":"lib/forge-std/src/console2.sol","imports":["lib/forge-std/src/console.sol"],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{},"seenByCompiler":true},"lib/forge-std/src/interfaces/IMulticall3.sol":{"lastModificationDate":1761648015935,"contentHash":"7b131ca1ca32ef6378b7b9ad5488b901","sourceName":"lib/forge-std/src/interfaces/IMulticall3.sol","imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"IMulticall3":{"0.8.30":{"default":{"path":"IMulticall3.sol/IMulticall3.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/forge-std/src/safeconsole.sol":{"lastModificationDate":1761648015762,"contentHash":"1445aa2f47000e212173e0cefd6c7a77","sourceName":"lib/forge-std/src/safeconsole.sol","imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"safeconsole":{"0.8.30":{"default":{"path":"safeconsole.sol/safeconsole.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"lastModificationDate":1761659842104,"contentHash":"a7fd0f05e36b0d0a21c75340c9c639ec","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":">=0.6.2","artifacts":{"IERC1363":{"0.8.30":{"default":{"path":"IERC1363.sol/IERC1363.json","build_id":"75eba169c7ecefc5c5c6cce7bfe23e9b"}}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"lastModificationDate":1761659842104,"contentHash":"947853028399b7de34bcc3704ee06e99","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","imports":["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":">=0.4.16","artifacts":{},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"lastModificationDate":1761659842104,"contentHash":"68620db2da7583d9a4919096ac77f577","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"],"versionRequirement":">=0.4.16","artifacts":{},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"lastModificationDate":1761659842944,"contentHash":"5041977bbe908de2e6ed0270447f79ad","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","imports":[],"versionRequirement":">=0.8.4","artifacts":{"IERC1155Errors":{"0.8.30":{"default":{"path":"draft-IERC6093.sol/IERC1155Errors.json","build_id":"4674cd6ed25dd9943fb376eddec40312"}}},"IERC20Errors":{"0.8.30":{"default":{"path":"draft-IERC6093.sol/IERC20Errors.json","build_id":"4674cd6ed25dd9943fb376eddec40312"}}},"IERC721Errors":{"0.8.30":{"default":{"path":"draft-IERC6093.sol/IERC721Errors.json","build_id":"4674cd6ed25dd9943fb376eddec40312"}}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"lastModificationDate":1761659842971,"contentHash":"59dfce11284f2636db261df9b6a18f81","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","imports":["lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC20":{"0.8.30":{"default":{"path":"ERC20.sol/ERC20.json","build_id":"4674cd6ed25dd9943fb376eddec40312"}}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"lastModificationDate":1761659842171,"contentHash":"9261adf6457863de3e9892f51317ec89","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","imports":[],"versionRequirement":">=0.4.16","artifacts":{"IERC20":{"0.8.30":{"default":{"path":"IERC20.sol/IERC20.json","build_id":"75eba169c7ecefc5c5c6cce7bfe23e9b"}}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"lastModificationDate":1761659842174,"contentHash":"513778b30d2750f5d2b9b19bbcf748a5","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"],"versionRequirement":">=0.6.2","artifacts":{"IERC20Metadata":{"0.8.30":{"default":{"path":"IERC20Metadata.sol/IERC20Metadata.json","build_id":"4674cd6ed25dd9943fb376eddec40312"}}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"lastModificationDate":1761659842974,"contentHash":"1fb9edee1d763745a62d0b1954998792","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"SafeERC20":{"0.8.30":{"default":{"path":"SafeERC20.sol/SafeERC20.json","build_id":"75eba169c7ecefc5c5c6cce7bfe23e9b"}}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"lastModificationDate":1761659842188,"contentHash":"67bfbc07588eb8683b3fd8f6f909563e","sourceName":"lib/openzeppelin-contracts/contracts/utils/Context.sol","imports":[],"versionRequirement":"^0.8.20","artifacts":{"Context":{"0.8.30":{"default":{"path":"Context.sol/Context.json","build_id":"4674cd6ed25dd9943fb376eddec40312"}}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"lastModificationDate":1761659842988,"contentHash":"190613e556d509d9e9a0ea43dc5d891d","sourceName":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","imports":[],"versionRequirement":"^0.8.20","artifacts":{"ReentrancyGuard":{"0.8.30":{"default":{"path":"ReentrancyGuard.sol/ReentrancyGuard.json","build_id":"75eba169c7ecefc5c5c6cce7bfe23e9b"}}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"lastModificationDate":1761659842204,"contentHash":"7074c93b1ea0a122063f26ddd1db1032","sourceName":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","imports":[],"versionRequirement":">=0.4.16","artifacts":{"IERC165":{"0.8.30":{"default":{"path":"IERC165.sol/IERC165.json","build_id":"75eba169c7ecefc5c5c6cce7bfe23e9b"}}}},"seenByCompiler":true},"scripts/DeployFlashLoanSecure.s.sol":{"lastModificationDate":1761663771384,"contentHash":"d8d94479e89e43efdb7c60742b45a1ec","sourceName":"scripts/DeployFlashLoanSecure.s.sol","imports":["contracts/balancer/FlashLoanReceiverSecure.sol","lib/forge-std/src/Base.sol","lib/forge-std/src/Script.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdConstants.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/safeconsole.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.0","artifacts":{"DeployFlashLoanSecure":{"0.8.30":{"default":{"path":"DeployFlashLoanSecure.s.sol/DeployFlashLoanSecure.json","build_id":"75eba169c7ecefc5c5c6cce7bfe23e9b"}}}},"seenByCompiler":true},"tests/contracts/ArbitrageTest.sol":{"lastModificationDate":1761648231541,"contentHash":"96906a4faac9f53260c2cb300530c40a","sourceName":"tests/contracts/ArbitrageTest.sol","imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdAssertions.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdConstants.sol","lib/forge-std/src/StdError.sol","lib/forge-std/src/StdInvariant.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdToml.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Test.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/safeconsole.sol"],"versionRequirement":"^0.8.19","artifacts":{"ArbitrageTest":{"0.8.30":{"default":{"path":"ArbitrageTest.sol/ArbitrageTest.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}},"IERC20":{"0.8.30":{"default":{"path":"ArbitrageTest.sol/IERC20.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}},"IUniswapV3Pool":{"0.8.30":{"default":{"path":"ArbitrageTest.sol/IUniswapV3Pool.json","build_id":"fc12a9179396bf92ca4ad204c6ccc8f9"}}}},"seenByCompiler":true},"tests/contracts/FlashLoanReceiverSecure.integration.t.sol":{"lastModificationDate":1761667453399,"contentHash":"53c7cc7b724da336fe2ef845977b40ff","sourceName":"tests/contracts/FlashLoanReceiverSecure.integration.t.sol","imports":["contracts/balancer/FlashLoanReceiverSecure.sol","lib/forge-std/src/Base.sol","lib/forge-std/src/StdAssertions.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdConstants.sol","lib/forge-std/src/StdError.sol","lib/forge-std/src/StdInvariant.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdToml.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Test.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/safeconsole.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.0","artifacts":{"FlashLoanReceiverSecureIntegrationTest":{"0.8.30":{"default":{"path":"FlashLoanReceiverSecure.integration.t.sol/FlashLoanReceiverSecureIntegrationTest.json","build_id":"a6db85c3069f61dd280608edb91dffd6"}}},"IERC20Metadata":{"0.8.30":{"default":{"path":"FlashLoanReceiverSecure.integration.t.sol/IERC20Metadata.json","build_id":"a6db85c3069f61dd280608edb91dffd6"}}}},"seenByCompiler":true},"tests/contracts/FlashLoanReceiverSecure.t.sol":{"lastModificationDate":1761667316784,"contentHash":"32cdb667659e1c530f13f881cda9ec68","sourceName":"tests/contracts/FlashLoanReceiverSecure.t.sol","imports":["contracts/balancer/FlashLoanReceiverSecure.sol","lib/forge-std/src/Base.sol","lib/forge-std/src/StdAssertions.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdConstants.sol","lib/forge-std/src/StdError.sol","lib/forge-std/src/StdInvariant.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdToml.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Test.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/safeconsole.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.0","artifacts":{"FlashLoanReceiverSecureTest":{"0.8.30":{"default":{"path":"FlashLoanReceiverSecure.t.sol/FlashLoanReceiverSecureTest.json","build_id":"aa1ce55cacb31fe9e0afe52cbcdcde9c"}}},"IFlashLoanRecipient":{"0.8.30":{"default":{"path":"FlashLoanReceiverSecure.t.sol/IFlashLoanRecipient.json","build_id":"aa1ce55cacb31fe9e0afe52cbcdcde9c"}}},"MockBalancerVault":{"0.8.30":{"default":{"path":"FlashLoanReceiverSecure.t.sol/MockBalancerVault.json","build_id":"aa1ce55cacb31fe9e0afe52cbcdcde9c"}}},"MockERC20":{"0.8.30":{"default":{"path":"FlashLoanReceiverSecure.t.sol/MockERC20.json","build_id":"aa1ce55cacb31fe9e0afe52cbcdcde9c"}}}},"seenByCompiler":true}},"builds":["4674cd6ed25dd9943fb376eddec40312","75eba169c7ecefc5c5c6cce7bfe23e9b","a6db85c3069f61dd280608edb91dffd6","aa1ce55cacb31fe9e0afe52cbcdcde9c","fc12a9179396bf92ca4ad204c6ccc8f9"],"profiles":{"default":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode.object","evm.bytecode.sourceMap","evm.bytecode.linkReferences","evm.deployedBytecode.object","evm.deployedBytecode.sourceMap","evm.deployedBytecode.linkReferences","evm.deployedBytecode.immutableReferences","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}}}} |