Skip to content

Pathway protocol contracts (Calibration of nascent UniswapV2 pools)

License

Notifications You must be signed in to change notification settings

GTON-capital/calibrator

 
 

Repository files navigation

Calibrator

Set desired price in Uniswap V2 pools. Inspired by the Pathway protocol.

Documentation 📚

Smart contract documentation is here.

The setRatio(targetBase, targetQuote) method will burn available liquidity tokens, perform several swaps to move the price, and add liquidity back to the pool. The size of base reserve remains constant before and after the calibration.

The estimate(targetBase, targetQuote) method will report resources required for calibration.

Developer Information and Tools 👩‍💻

Install dependencies 👷‍♂️

Note If you use nix, run nix develop to install all dependencies in PATH

You'll need to install nodejs >= 18.15.0. We use yarn but npm should work too. You'll also need to install foundry and solc. Assuming that's done, run yarn with no args:

yarn

Build the code 🧐

To compile the contracts:

yarn compile

Run tests 🦾

To run both foundry and hardhat tests:

yarn test

Running the linter 🧽

To run the linter in the default mode, where it will print all errors and not modify code, run:

yarn lint

Coverage 🔎

We use the solidity-coverage package to generate coverage reports for hardhat in coverage/ and forge coverage for foundry tests in coverage-foundry. You can generate the coverage reports locally by running:

yarn coverage
yarn hardhat coverage

The full reports can be viewed by opening the coverage/index.html and coverage-foundry/index.html files in a browser.

Deploy and interact 🚀

Enter your private key to the .env file from .env.example template. Double-check the deploy script and run:

yarn hardhat run scripts/deploy.js

You can deploy to your network of choice by modifying hardhat.config.ts and adding the flag --network yourNetwork to the invocation.

    yourNetwork: {
      url: "https://example.com",
      accounts: [PRIVATE_KEY],
    },

Verify 📄

To verify the source code with a network explorer, it's best to generate json metadata.

yarn hardhat solidity-json

Choose Standard-Json-Input in the explorer verification dialog and upload json from artifacts/solidity-json/contracts/Calibrator.sol.json.

About

Pathway protocol contracts (Calibration of nascent UniswapV2 pools)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Solidity 65.1%
  • TypeScript 33.5%
  • Nix 1.4%