This repository contains the core smart contracts for Vanilla. For documentation, see the technical overview of the contracts.
We use pnpm instead of npm. Use npm to install pnpm:
npm install -g pnpm
We use Hardhat as a build tool.
To build, generate Typechain bindings, and run model tests:
pnpm install
pnpm run compile:sol
pnpm run generate:typechain
pnpm test
To run coverage reports
pnpm run coverage:sol
We use ESLint for JS/TS code and Prettier for Solidity code.
To run lint checks:
pnpm run lint:js
pnpm run lint:sol
To reformat / prettify:
pnpm run format:js
pnpm run format:sol
We use Hardhat also for all deployments. See DEPLOYMENT.md for detailed instructions.
All source code is licensed under GPL-3.0-or-later except:
- contracts/Tickmath.sol -library, which is a derived work from a similar library in Uniswap v3 Core, and is licensed under GPL-2.0-or-later