← Back to home

MC Hooks Template

Uniswap V4 Hooks template based on a Meta Contract framework with function-level upgradeability and clonability

Screenshots

MC Hooks Template screenshot 1
MC Hooks Template screenshot 2
MC Hooks Template screenshot 3

Problem Statement

Successfully rewrote the v4-template using a Meta Contract framework, achieving upgradeable and maintainable hooks.Many hooks are currently in development, while most are built as standard (immutable) contracts, upgradability is sometimes needed. Stateless hooks require only a single instance, but for stateful hooks, it’s preferable to have one per pool. It’s possible to manage stateful hooks by pool ID, this can introduce risks, such as asset mixing.Meta Contract offers an upgradable and clonable smart contract paradigm, making it an ideal choice for creating a template for hooks. Meta Contract incorporates the following ERCs as core components: ERC-7546: Upgradeable Clone for Scalable Contracts ERC-7201: Namespaced Storage Layout

Solution

I used two repository. Template from @uniswapfoundation/v4-template, framework from @metacontract/mc. Since there was a Counter.sol, I rewrote the same functionality as a Hook following the syntax of the Meta Contract framework. I proceeded with the rewrite following the steps below: ・Function separation ・Storage schema construction ・Function registration into a dictionary ・Generation of proxies linked to the dictionary

Hackathon

ETHGlobal Bangkok

2024

Prizes

  • 🏆

    Blockscout Explorer Big Pool Prize

    Blockscout

Contributors