Dedicated AMM for market-making hTokens
npm install @hifi/ammDedicated AMM for market-making hTokens, based on the Yield Space design.
The build artifacts can be browsed via unpkg.com.
With yarn:
``bash`
$ yarn add @hifi/amm
Or npm:
`bash`
$ npm install @hifi/amm
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.
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.
`solidity
// 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);
}
``
BUSL v1.1 © Mainframe Group Inc.