├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .gitmodules ├── README.md ├── artifacts ├── WETH9.json ├── build-uniswap-v1 │ ├── UniswapV1Exchange.json │ └── UniswapV1Factory.json └── build-uniswap-v2 │ └── core │ └── UniswapV2Factory.json ├── foundry.toml ├── package.json ├── remappings.txt ├── src ├── DamnValuableNFT.sol ├── DamnValuableToken.sol ├── DamnValuableTokenSnapshot.sol ├── backdoor │ └── WalletRegistry.sol ├── climber │ ├── ClimberTimelock.sol │ └── ClimberVault.sol ├── compromised │ ├── Exchange.sol │ ├── TrustfulOracle.sol │ └── TrustfulOracleInitializer.sol ├── free-rider │ ├── FreeRiderBuyer.sol │ └── FreeRiderNFTMarketplace.sol ├── naive-receiver │ ├── FlashLoanReceiver.sol │ └── NaiveReceiverLenderPool.sol ├── puppet │ └── PuppetPool.sol ├── selfie │ ├── SelfiePool.sol │ └── SimpleGovernance.sol ├── side-entrance │ └── SideEntranceLenderPool.sol ├── test │ ├── BaseTest.sol │ ├── backdoor │ │ └── BackdoorTest.t.sol │ ├── climber │ │ └── ClimberTest.t.sol │ ├── free-rider │ │ └── FreeRiderTest.t.sol │ ├── naivereceiver │ │ └── NaiveReceiver.t.sol │ ├── puppet │ │ └── PuppetTest.t.sol │ ├── selfie │ │ └── SelfieTest.t.sol │ ├── side-entrance │ │ └── SideEntranceLenderPool.t.sol │ ├── the-rewarder │ │ └── TheRewarderTest.t.sol │ ├── truster │ │ └── Truster.t.sol │ ├── unstoppable │ │ └── UnstoppableLender.t.sol │ └── utils │ │ └── Utilities.sol ├── the-rewarder │ ├── AccountingToken.sol │ ├── FlashLoanerPool.sol │ ├── RewardToken.sol │ └── TheRewarderPool.sol ├── truster │ └── TrusterLenderPool.sol ├── uniswap-v1 │ ├── IUniswapV1Exchange.sol │ └── IUniswapV1Factory.sol └── unstoppable │ ├── ReceiverUnstoppable.sol │ └── UnstoppableLender.sol └── yarn.lock /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | node_modules/ 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/.gitmodules -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/README.md -------------------------------------------------------------------------------- /artifacts/WETH9.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/artifacts/WETH9.json -------------------------------------------------------------------------------- /artifacts/build-uniswap-v1/UniswapV1Exchange.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/artifacts/build-uniswap-v1/UniswapV1Exchange.json -------------------------------------------------------------------------------- /artifacts/build-uniswap-v1/UniswapV1Factory.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/artifacts/build-uniswap-v1/UniswapV1Factory.json -------------------------------------------------------------------------------- /artifacts/build-uniswap-v2/core/UniswapV2Factory.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/artifacts/build-uniswap-v2/core/UniswapV2Factory.json -------------------------------------------------------------------------------- /foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/foundry.toml -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/package.json -------------------------------------------------------------------------------- /remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/remappings.txt -------------------------------------------------------------------------------- /src/DamnValuableNFT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/DamnValuableNFT.sol -------------------------------------------------------------------------------- /src/DamnValuableToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/DamnValuableToken.sol -------------------------------------------------------------------------------- /src/DamnValuableTokenSnapshot.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/DamnValuableTokenSnapshot.sol -------------------------------------------------------------------------------- /src/backdoor/WalletRegistry.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/backdoor/WalletRegistry.sol -------------------------------------------------------------------------------- /src/climber/ClimberTimelock.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/climber/ClimberTimelock.sol -------------------------------------------------------------------------------- /src/climber/ClimberVault.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/climber/ClimberVault.sol -------------------------------------------------------------------------------- /src/compromised/Exchange.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/compromised/Exchange.sol -------------------------------------------------------------------------------- /src/compromised/TrustfulOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/compromised/TrustfulOracle.sol -------------------------------------------------------------------------------- /src/compromised/TrustfulOracleInitializer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/compromised/TrustfulOracleInitializer.sol -------------------------------------------------------------------------------- /src/free-rider/FreeRiderBuyer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/free-rider/FreeRiderBuyer.sol -------------------------------------------------------------------------------- /src/free-rider/FreeRiderNFTMarketplace.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/free-rider/FreeRiderNFTMarketplace.sol -------------------------------------------------------------------------------- /src/naive-receiver/FlashLoanReceiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/naive-receiver/FlashLoanReceiver.sol -------------------------------------------------------------------------------- /src/naive-receiver/NaiveReceiverLenderPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/naive-receiver/NaiveReceiverLenderPool.sol -------------------------------------------------------------------------------- /src/puppet/PuppetPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/puppet/PuppetPool.sol -------------------------------------------------------------------------------- /src/selfie/SelfiePool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/selfie/SelfiePool.sol -------------------------------------------------------------------------------- /src/selfie/SimpleGovernance.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/selfie/SimpleGovernance.sol -------------------------------------------------------------------------------- /src/side-entrance/SideEntranceLenderPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/side-entrance/SideEntranceLenderPool.sol -------------------------------------------------------------------------------- /src/test/BaseTest.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/test/BaseTest.sol -------------------------------------------------------------------------------- /src/test/backdoor/BackdoorTest.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/test/backdoor/BackdoorTest.t.sol -------------------------------------------------------------------------------- /src/test/climber/ClimberTest.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/test/climber/ClimberTest.t.sol -------------------------------------------------------------------------------- /src/test/free-rider/FreeRiderTest.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/test/free-rider/FreeRiderTest.t.sol -------------------------------------------------------------------------------- /src/test/naivereceiver/NaiveReceiver.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/test/naivereceiver/NaiveReceiver.t.sol -------------------------------------------------------------------------------- /src/test/puppet/PuppetTest.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/test/puppet/PuppetTest.t.sol -------------------------------------------------------------------------------- /src/test/selfie/SelfieTest.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/test/selfie/SelfieTest.t.sol -------------------------------------------------------------------------------- /src/test/side-entrance/SideEntranceLenderPool.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/test/side-entrance/SideEntranceLenderPool.t.sol -------------------------------------------------------------------------------- /src/test/the-rewarder/TheRewarderTest.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/test/the-rewarder/TheRewarderTest.t.sol -------------------------------------------------------------------------------- /src/test/truster/Truster.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/test/truster/Truster.t.sol -------------------------------------------------------------------------------- /src/test/unstoppable/UnstoppableLender.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/test/unstoppable/UnstoppableLender.t.sol -------------------------------------------------------------------------------- /src/test/utils/Utilities.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/test/utils/Utilities.sol -------------------------------------------------------------------------------- /src/the-rewarder/AccountingToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/the-rewarder/AccountingToken.sol -------------------------------------------------------------------------------- /src/the-rewarder/FlashLoanerPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/the-rewarder/FlashLoanerPool.sol -------------------------------------------------------------------------------- /src/the-rewarder/RewardToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/the-rewarder/RewardToken.sol -------------------------------------------------------------------------------- /src/the-rewarder/TheRewarderPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/the-rewarder/TheRewarderPool.sol -------------------------------------------------------------------------------- /src/truster/TrusterLenderPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/truster/TrusterLenderPool.sol -------------------------------------------------------------------------------- /src/uniswap-v1/IUniswapV1Exchange.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/uniswap-v1/IUniswapV1Exchange.sol -------------------------------------------------------------------------------- /src/uniswap-v1/IUniswapV1Factory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/uniswap-v1/IUniswapV1Factory.sol -------------------------------------------------------------------------------- /src/unstoppable/ReceiverUnstoppable.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/unstoppable/ReceiverUnstoppable.sol -------------------------------------------------------------------------------- /src/unstoppable/UnstoppableLender.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/src/unstoppable/UnstoppableLender.sol -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StErMi/forge-damn-vulnerable-defi/HEAD/yarn.lock --------------------------------------------------------------------------------