joule_markets_sdk
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

SDK for interacting with Joule Money Market

Installation

npm i joule_markets_sdk@latest

NOTE :- Initialize and start the PriceClient at the start of your applications.

import { createPriceFeedService, getMarketsDetails, PriceFeedService } from "joule_market_sdk"
import { useEffect, useState } from "react"

function App() {
  const [priceClient, setPriceClient] = useState<PriceFeedService>();

  async function getData() {
    const res = await getMarketsDetails('USDC')
    console.log(res)
  }

  useEffect(() => {
    const client = createPriceFeedService();
    setPriceClient(client);
    client.start()
  }, []);

  return (
    <>
      <button type="button" onClick={() => getData()}> Click me</button>
    </>
  )
}

export default App

An example to get maxBorrow, and how to borrow

import { createPriceFeedService, PriceFeedService, getMaxBorrow, prepareDataForBorrowOrWithdraw, getUserPositionsByAddress, borrow } from "joule_market_sdk"
import { useEffect, useState } from "react"

function App() {
  const [priceClient, setPriceClient] = useState<PriceFeedService>();

  async function getPreparedData() {
    // to get user position details, returns all the position details if not given a position_id
    const positionDetails = await getUserPositionsByAddress('abc...xyz', priceClient!, 1)
    let positionData = null;
    if (positionDetails.success) {
      positionData = positionDetails.userPositions[0]
    }

  // very useful, prepares data for borrow, withdraw, to get max borrow, or to get max withdraw
    const preparedData = await prepareDataForBorrowOrWithdraw('abc...xyz', Number(positionData?.positionId), "USDC", Number(positionData?.efficiency_mode_id))

    // to calculate max borrow
    const max_borrow = await getMaxBorrow(preparedData, priceClient!)
    console.log(max_borrow)


    // to borrow  (account - Interface for a generic Aptos account.)
    const borrow_token = await borrow(account, 12, priceClient!, preparedData)
    console.log(borrow_token)
  }

  useEffect(() => {
    const client = createPriceFeedService();
    setPriceClient(client);
    client.start()
  }, []);

  return (
    <>
      <button type="button" onClick={() => getPreparedData()}> Click me</button>
    </>
  )
}

export default App

Readme

Keywords

none

Package Sidebar

Install

npm i joule_markets_sdk

Weekly Downloads

1

Version

1.0.4

License

MIT

Unpacked Size

395 kB

Total Files

9

Last publish

Collaborators

  • void_restack