npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@uniswaphooks/v4-periphery-unofficial

v1.0.0

Published

🦄 🦄 🦄 🦄 Peripheral smart contracts for interacting with Uniswap v4

Downloads

3

Readme

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.ModifyLiquidityParams 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.