Giter Club home page Giter Club logo

v4-periphery's Introduction

Uniswap v4 Periphery

Uniswap v4 is a new automated market maker protocol that provides extensibility and customizability to pools. v4-periphery hosts the logic that builds on top of the core pool logic like hook contracts, position managers, and even possibly libraries needed for integrations. The v4-periphery contracts in this repository are still in development and further periphery contracts have not yet been built.

Contributing

If you’re interested in contributing please see the contribution guidelines!

Repository Structure

contracts/
----hooks/
    ----examples/
        | GeomeanOracle.sol
        | LimitOrder.sol
        | TWAMM.sol
        | VolatilityOracle.sol
----libraries/
    | Oracle.sol
BaseHook.sol
test/

To showcase the power of hooks, this repository provides some interesting examples in the /hooks/examples/ folder. Note that none of the contracts in this repository are fully production-ready, and the final design for some of the example hooks could look different.

Eventually, some hooks that have been audited and are considered production-ready will be placed in the root hooks folder. Not all hooks will be safe or valuable to users. This repository will maintain a limited set of hook contracts. Even a well-designed and audited hook contract may not be accepted in this repo.

Local Deployment and Usage

To utilize the contracts and deploy to a local testnet, you can install the code in your repo with forge:

forge install https://github.com/Uniswap/periphery-next

If you are building hooks, it may be useful to inherit from the BaseHook contract:

import {BaseHook} from 'periphery-next/contracts/BaseHook.sol';

contract CoolHook is BaseHook {
    // Override the hook callbacks you want on your hook
    function beforeModifyPosition(
        address,
        IPoolManager.PoolKey calldata key,
        IPoolManager.ModifyPositionParams calldata params
    ) external override poolManagerOnly returns (bytes4) {
        // hook logic
        return BaseHook.beforeModifyPosition.selector;
    }
}

License

The license for Uniswap V4 Periphery is the GNU General Public License (GPL 2.0), see LICENSE.

v4-periphery's People

Contributors

ewilz avatar hensha256 avatar marktoda avatar noahzinsmeister avatar paco0x avatar snreynolds avatar stephenatgithub avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.