Skip to content

Studio notes

What we've learned building software.

Notes on iPhone apps, the web, backends and Ethereum smart contracts, written so that the people who commission software can follow them.

RSS feed

Smart contracts

One storage namespace per module: ERC-7201 in practice

How to give each module of an upgradeable Solidity protocol its own ERC-7201 storage namespace: naming, the erc7201 builtin, safe struct changes and tests.

  • ERC-7201
  • Storage layout
  • Upgradeable contracts

Smart contracts

Invariant testing a lending protocol with Foundry

A practical guide to Foundry invariant tests for DeFi lending protocols: handlers, bounded inputs, ghost variables, time travel, and the invariants worth checking.

  • Foundry
  • Invariant testing
  • Lending

Have something you'd like built?

Tell us what you're building. We'll reply within two working days with questions, an approach and next steps.

Start a project
Esc

↑ ↓ to move · Enter to open