Skip to content

Latest commit

 

History

History
30 lines (17 loc) · 1.86 KB

README.md

File metadata and controls

30 lines (17 loc) · 1.86 KB

Balancer

Symmetric V2 Pool Utilities

NPM Package Docs

This package contains Solidity utilities for developing Symmetric V2 Pools, implementing common patterns such as token decimal scaling, caller checks on hooks, etc.

The most useful contracts are BaseGeneralPool and BaseMinimalSwapInfoPool, used as base contracts for Pools with the General and MinimalSwapInfo/TwoTokens specializations respectively.

The recommended pattern is to create new Pools from factory contracts, as that lets other systems reason about Pool logic by checking if a Pool was deployed from a given factory. BasePoolFactory and BasePoolSplitCodeFactory (for large contracts) can be used for this purpose.

Overview

Installation

$ npm install @balancer-labs/v2-pool-utils

Usage

Contracts in this package are meant to be used via inheritance to develop new Pools. The BaseGeneralPool and BaseMinimalSwapInfoPool contracts are abstract, meaning some virtual functions (such as _onJoinPool or _onSwapGivenIn) are not defined: derived contracts must override them and provide an implementation.

See v2-pool-weighted for the implementation of Pools with a Constant Weighted Product invariant using these base contracts.

Licensing

GNU General Public License Version 3 (GPL v3).