Request form
Uniswap V4 Periphery
  • Uniswap
  • DEX
  • Exchange
  • Token
  • Protocol
Docs
Source
ChefGPT

Web3 infrastructure and products

BaseHook.sol
FullRange.sol
GeomeanOracle.sol
LimitOrder.sol
TWAMM.sol
VolatilityOracle.sol
ITWAMM.sol
LiquidityAmounts.sol
Oracle.sol
PoolGetters.sol
TransferHelper.sol
ABDKMathQuad.sol
OrderPool.sol
TwammMath.sol
UniswapV4ERC20.sol
draft-IERC6093.sol
IERC20Metadata.sol
ERC1155.sol
IERC1155MetadataURI.sol
IERC1155.sol
IERC1155Receiver.sol
IERC20Metadata.sol
IERC20.sol
Arrays.sol
Context.sol
ERC165.sol
IERC165.sol
Math.sol
SignedMath.sol
StorageSlot.sol
Strings.sol
Owned.sol
ERC20.sol
FixedPointMathLib.sol
Fees.sol
ILockCallback.sol
IERC20Minimal.sol
IDynamicFeeManager.sol
IFees.sol
IHookFeeManager.sol
IHooks.sol
IPoolManager.sol
IProtocolFeeController.sol
BitMath.sol
FeeLibrary.sol
FixedPoint128.sol
FixedPoint96.sol
FullMath.sol
Hooks.sol
LockDataLibrary.sol
Pool.sol
Position.sol
SafeCast.sol
SqrtPriceMath.sol
SwapMath.sol
TickBitmap.sol
TickMath.sol
UnsafeMath.sol
NoDelegateCall.sol
Owned.sol
PoolManager.sol
BalanceDelta.sol
Currency.sol
PoolId.sol
PoolKey.sol

12 downloads

Chains

Authors

Uniswap V4 Periphery
  • Uniswap
  • DEX
  • Exchange
  • Token
  • Protocol
Info
Source
ChefGPT
Expand
Share

Get Cookin'

12 downloads

Authors

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.

Web3 infrastructure and products
BaseHook.sol
FullRange.sol
GeomeanOracle.sol
LimitOrder.sol
TWAMM.sol
VolatilityOracle.sol
ITWAMM.sol
LiquidityAmounts.sol
Oracle.sol
PoolGetters.sol
TransferHelper.sol
ABDKMathQuad.sol
OrderPool.sol
TwammMath.sol
UniswapV4ERC20.sol
draft-IERC6093.sol
IERC20Metadata.sol
ERC1155.sol
IERC1155MetadataURI.sol
IERC1155.sol
IERC1155Receiver.sol
IERC20Metadata.sol
IERC20.sol
Arrays.sol
Context.sol
ERC165.sol
IERC165.sol
Math.sol
SignedMath.sol
StorageSlot.sol
Strings.sol
Owned.sol
ERC20.sol
FixedPointMathLib.sol
Fees.sol
ILockCallback.sol
IERC20Minimal.sol
IDynamicFeeManager.sol
IFees.sol
IHookFeeManager.sol
IHooks.sol
IPoolManager.sol
IProtocolFeeController.sol
BitMath.sol
FeeLibrary.sol
FixedPoint128.sol
FixedPoint96.sol
FullMath.sol
Hooks.sol
LockDataLibrary.sol
Pool.sol
Position.sol
SafeCast.sol
SqrtPriceMath.sol
SwapMath.sol
TickBitmap.sol
TickMath.sol
UnsafeMath.sol
NoDelegateCall.sol
Owned.sol
PoolManager.sol
BalanceDelta.sol
Currency.sol
PoolId.sol
PoolKey.sol