Weekly solidity (contract) programming "dev stuff" updates.
Bonus: For weekly ethereum improvement proposal (eip) updates - see ETHEREUM »
- Solidity v0.8.18: Paris default EVM version, adds block.prevrandao & deprecates block.difficulty, adds flag to not append CBOR metadata, deprecates selfdestruct and improves bytecode generation from Yul
- Codeslaw: search verified contracts
- ERC721X: ERC721 extension to auto expire transfer approvals after 30 days
- Guide to libraries in Solidity
- Ape v0.6.0 (Python contract framework): beta support for Multicall3, adds per-function encode/decode methods and run scripts in nested subdirectories
- MatchboxDAO's 0xMonaco race entries: first, second, third & disqualified bug exploiter
- Secureum RACE #14: 8 question Solidity quiz & answers
- Capture the Flag (CTF) solutions using Ape & Vyper: Ethernaut, Damn vulnerable DeFi & EthernautDAO
- Guide to using SMTChecker with Hardhat
- Halmos: symbolic testing reusing Foundry tests for formal verification
- Wagmi CLI (React hooks): generate code, connect to Foundry/Hardhat projects & create plugins
- Universal bridge: common interface to send a message to a supported network using official bridges
- zkLLVM compiler: circuit compiler for languages such as C/C++
- Spartan-ecdsa: verify secp256k1 ECDSA signatures in zk, proofs in browser in 5 seconds
- In-browser recursive proving & verification added to Nova & Nova Scotia
- Foundry:
- ChugSplash Foundry: deploy & manage upgradeable contracts, upgrade OpenZeppelin Transparent proxies, supports mainnet & Optimism
- Deal cheat code mints ERC20 tokens in tests
- EVM call stipend (2300 gas) explainer
- OpenZeppelin proposal to mitigate ERC4626 inflation attacks with virtual assets & shares
- Sparse-arr-lib: Solidity library for sparse arrays, work in progress
- Optimizing using Yul via example rock, paper & scissors contracts
- Samczsun's signature database: exportable, add to canonical list via GitHub
- Clipshot: ERC1155 token holder snapshots as CSV
- Hydralisk: Python CLI for bulk wallet creation
- Walk through of building bear traps for MEV bot front-runners
- DamnVulnerableDefi ABI smuggling solution
- Uniswap v3 math explainer
- Foundry:
- Foundry best practices
- forge-std v1.3.0: InvariantTest helper contract, Multicall3 interface & getTokenBalances helper, StdChains chain alias, parseJson & assumePayable cheat codes and decimal assertions
- Invariant testing: example repo to experiment, also see Maple Finance invariant tests
- forge doc: documentation generator using natspec, outputs markdown
- Solidity preview of user-defined operators in upcoming v0.8.18
- Fe language bountiful round 2 bug bounty contest
- Beginners guide to Yul (intermediate language)
- Guide to contract decompilation, as implemented by heimdall-rs (decompiler)
- Solidity-merkle-trees: Solidity library to verify multi-proofs of Merkle trees
- ERC5267 demo website to retrieve ERC712 domain
- The Graph adds support for Arbitrum & Optimism
- Hardhat and Foundry plugin v1
- Foundry toolchain now caches RPC calls in CI flows
- If you've deployed a contract to Mainnet, Goerli, or Sepolia before Nov 15, 2022, you can claim 10 goerli + 10 sepolia eth
- Chugsplash: tool to deploy and upgrade smart contracts securely
- Turborepo starter kit: NextJS, WAGMI, Ethers, Tailwind, Hardhat, Typechain
- Paul Berg on solving stack too deep
- Now over 225 contracts to fork and easily deploy on Cookbook.dev
- Node health monitoring tool
- Solidity compiler appends encoded IPFS hash of contract metadata to bytecode for verification
- Guide to using PrevRandao
- Paul Berg: Solidity supports functions as parameters, useful in testing e.g. Seaport
- EVM quirks and how they are handled in Solidity & Vyper
- Setup remixd to use Remix with local filesystem
- Capture the Flag (CTFs):
- Mr Steal Yo Crypto, uses Hardhat
- Making of HappyNewYear CTF
- Damn Vulnerable DeFi backdoor solution
- Shop puzzle & solution
- Secureum bootcamp race-13 quiz solution
- TurboETH: dapp build system, app template, ERC20 & ERC721 components & hooks, beta
- Use TrueBlocks to find all contracts created by an address
- Guide to equivalence checking Solidity functionality with a reference implementation using Z3 theorem prover
- UniRep protocol: private & non-repudiable reputation system
- Foundry Chisel: Solidity REPL
- Etherscan contract verification API adds failure message
- Uniswap poor oracle: flash loan proof Uniswap v3 price-out-of-range oracle
- Norswap on ERC2535 (Diamonds): only use to circumvent contract size limitations
- Fallback: create web apps in Solidity, proof of concept
- Huff-immutables: constructor-initialized immutables in Huff
- VSCode Solidity Inspector v0.0.3: view contract storage layout
- Understanding EVM instruction boundaries plus an EVM regex decompiler (Perl compatible regex)
- Noble-curves: elliptic curves in JavaScript, zero-dependencies
- Wagmi (React hooks) v0.10.0: WalletConnect v2 support and useWatchPendingTransactions hook
- ENS Profile API: access via GraphQL
Thanks to the Week in Ethereum - Stuff For (Solidity) Developers weekly news updates.