Skip to content

Latest commit

 

History

History
75 lines (63 loc) · 4.01 KB

CHANGELOG.md

File metadata and controls

75 lines (63 loc) · 4.01 KB

Changelog

v4.0.0

  • Full migration from Hardhat to Foundry.
  • Updated all contracts to solc 0.8.25.
  • Say goodbye to selfdestruct stuff.
  • Dependencies
    • Upgrade all dependencies to latest versions (e.g., OpenZeppelin Contracts v5)
    • Welcome murky. Just in case you need to work with Merkle trees in Foundry.
    • Also welcome Permit2 and Multicall. Have fun with them.
  • New challenges:
    • Withdrawal
    • Curvy Puppet
    • Shards
  • Major changes in challenges:
    • All challenges now require depositing rescued funds into designated recovery accounts.
    • Wallet Mining: new mechanics after upgrading to latest Safe contracts.
    • The Rewarder: changed completely. Could count as new. Now it's about a token distribution based on Merkle proofs.
    • Unstoppable: new monitor contract and pausing-related features.
    • Naive Receiver: changed ETH for WETH. The pool now supports (flawed?) meta-transactions.
  • Minor changes in challenges:
    • All challenges' prompts are available in local README files.
    • Removed boring contract-level docstrings.
    • Removed gas optimizations that are not cool anymore.
    • Generally using named function parameters.
  • New building blocks used in challenges
    • DamnValuableStaking for bulletproof staking of DVT
    • DamnValuableVotes, because the old DamnValuableTokenSnapshot didn't work anymore.
  • The repository now includes a devcontainer.

v3.0.0

  • Two new levels: Puppet v3 and ABI Smuggling
  • Heavy rework of Safe Miners challenge. Now called "Wallet mining".
  • Unstoppable challenge now uses a tokenized vault following ERC4626.
  • Some challenges now explicitly require to be solved in a single transaction.
  • Now using ERC3156 for some flashloan pools.
  • Now the Damn Valuable Token uses ERC2612. Therefore, added eth-permit as a dependency to ease signing permit data.
  • Welcome solady and solmate!
  • Migrate from Waffle to Hardhat Chai Matchers (following this guide)
  • Change final assertion in Puppet challenge following PR#9.
  • Remove unnecessary awaits in "The Rewarder" challenge following PR#12
  • Remove the WETH9 contract, and import it from solmate instead.
  • Change timestamp comparison in ClimberTimelock contract following PR#16 and additional refactors.
  • The player now plays with the player account.
  • Lots of quality of life changes in dependencies, custom errors, error messages, variable names, docs, gas optimizations (assembly, yay!) and code organization.

v2.2.0

  • Change name of challenge "Junior Miners" to "Safe Miners".

v2.1.0

  • New level: Junior Miners.

v2.0.0

  • Refactor testing environment. Now using Hardhat, Ethers and Waffle. This should give players a better debugging experience, and allow them to familiarize with up-to-date JavaScript tooling for smart contract testing.
  • New levels:
    • Backdoor
    • Climber
    • Free Rider
    • Puppet v2
  • New integrations with Gnosis Safe wallets, Uniswap v2, WETH9 and the upgradebale version of OpenZeppelin Contracts.
  • Tweaks in existing challenges after community feedback
    • Upgraded most contracts to Solidity 0.8
    • Changes in internal libraries around low-level calls and transfers of ETH. Now mostly using OpenZeppelin Contracts utilities.
    • In existing Puppet and The Rewarder challenges, better encapsulate issues to avoid repetitions.
    • Reorganization of some files
  • Changed from npm to yarn as dependency manager

v1.0.0

Initial version