@aurora-balancer-labs/v2-pool-utils v2.1.0
Balancer V2 Pool Utilities
This package contains Solidity utilities for developing Balancer 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 @aurora-balancer-labs/v2-pool-utilsUsage
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.