@hifi/amm

1.11.0 • Public • Published

Hifi AMM npm (scoped)

Dedicated AMM for market-making hTokens, based on the Yield Space design.

The build artifacts can be browsed via unpkg.com.

Installation

With yarn:

$ yarn add @hifi/amm

Or npm:

$ npm install @hifi/amm

Usage

The node package that you just installed contains both Solidity and JavaScript code. The former is the smart contracts themselves; the latter, the smart contract ABIs and the TypeChain bindings.

Solidity

The Hifi AMM can only be compiled with Solidity v0.8.4 and above, because we are reverting with custom errors instead of reason strings.

// SPDX-License-Identifier: Unlicense
pragma solidity >=0.8.4;

import "@hifi/amm/contracts/IHifiPool.sol";

contract YourContract {
    // Find the address on https://docs.hifi.finance
    IHifiPool hifiPool = IHifiPool(0x...);

    function getQuote(uint256 hTokenIn) external view returns (uint256 underlyingOut) {
        underlyingOut = hifiPool.getQuoteForSellingHToken(hTokenIn);
    }
}

JavaScript

import { getDefaultProvider } from "@ethersproject/providers";
import { parseUnits } from "@ethersproject/units";
import { HifiPool__factory } from "@hifi/amm/dist/types/factories/HifiPool__factory";

async function getQuote() {
  const hifiPoolABI = HifiPool__factory.abi;
  const defaultProvider = getDefaultProvider();
  const hifiPool = new HifiPool__factory("0x...", defaultProvider); // Find the address on https://docs.hifi.finance
  const hTokenIn = parseUnits("100", 18);
  const underlyingOut = await hifiPool.getQuoteForSellingHToken(hTokenIn);
}

License

BUSL v1.1 © Mainframe Group Inc.

Package Sidebar

Install

npm i @hifi/amm

Weekly Downloads

7

Version

1.11.0

License

BUSL-1.1

Unpacked Size

391 kB

Total Files

45

Last publish

Collaborators

  • scorpion9979
  • paulrberg