0.1.4 • Published 2 years ago

midaswap-sdk v0.1.4

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Midaswap SDK

An SDK for building applications on top of Midaswap Protocol.

1. Login/Register

import * as midasdk from "midaswap-sdk";

await midasdk.connect();   // connect wallet

const account = "***";     // Replace with your address
await midasdk.login(account);

const signMsg = await midasdk.getMsgSign(account);
await midasdk.register(account, signMsg);

2. Base data

2.1 Get Pair Info

   const nftAddress = "0x2c0D7e5D70b1bA7A457933Db3915b2BA990C5D8b"
   const ftAddress = "0x032Fd8A72cC4193aE4527B28Ca09CE973E15A32b"
   await midasdk.getPairInfo(nftAddress,ftAddress)
      {
         bestOffer: 8435706
         decimals: 18
         floorPrice: 8435795
         proportion: "999652000000000000"
      }
               bestOffer
                     midasdk.utils.binToPrice(8435706,decimals)
                     '111.0038'
               floorPrice
                     midasdk.utils.binToPrice(8435795,decimals)
                     '111.9961'

2.2 Contracts

const router = await midasdk.router();

2.3 Bin/Price Conversion

a. Bin to Price

   const ftDecimals = 18
   midasdk.utils.priceToBin(1,ftDecimals)      ----> 8388608
   midasdk.utils.priceToBin(10,ftDecimals)     ----> 8411635

b. Price to Bin

   midasdk.utils.binToPrice(8388608,ftDecimals)          -----> "1"
   midasdk.utils.binToPrice(8411635,ftDecimals)          -----> "10"

3. Portfolio

3.1 List NFT

a. NFT/FT Addresses Example:

const bayc = "0x2c0D7e5D70b1bA7A457933Db3915b2BA990C5D8b";
const usdc = "0x032Fd8A72cC4193aE4527B28Ca09CE973E15A32b";

b. NFT Collection List:

await midasdk.portfolio.getCollectionList();

c. BAYC Items Filter:

const tag = "items";
await midasdk.portfolio.getFilter(bayc, tag);

d. NFT (BAYC/USDC) with Listed Orders:

await midasdk.portfolio.getQueryList(bayc, "items", usdc, "listed");

e. NFT (BAYC/USDC) without Listed Orders:

await midasdk.portfolio.getQueryList(bayc, "items", usdc, "unlisted");

3.2 Place NFT Limit Order

const bayc = "0x2c0D7e5D70b1bA7A457933Db3915b2BA990C5D8b";
const usdc = "0x032Fd8A72cC4193aE4527B28Ca09CE973E15A32b";
const deadline = midasdk.utils.getDeadline();
const price = 1;
const bin1 = midasdk.utils.priceToBin(price, decimals);
const priceBins = [bin1];
const nftids = ["2134"];
await router.openMultiLimitSellOrders(bayc, usdc, priceBins, nftids, deadline);

3.3 Sell NFT Directly (Sell at Best Offer Price)

   <!-- Get price list of all buy orders -->
   const bestBins = await midasdk.portfolio.getBestBins(bayc,"items",usdc,"unlisted")
   const nftIds = [1008]
   const minOutputBig = midasdk.utils.getSellItemsParam(bestBins,[1008],18)
   await router.sellItems("bayc","usdc",[1008],minOutputBig, deadline)

3.4 Cancel/Claim

Get Sell/Offers Finish/Unfinish List:

await midasdk.portfolio.getQueryList(bayc, "sell", usdc, "unfinish");
const lpTokenId = 45;
await router.removeLiquidity(bayc, usdc, lpTokenId, deadline);

4. Collection

4.1 Get Collection List

await midasdk.collection.getCollectionList();

4.2 Make one or multiple NFT Buy Orders

await midasdk
  .router()
  .openMultiLimitBuyOrder(bayc, usdc, [priceBin, priceBin], deadline);

4.3 Get Buy Order List

getOfferList();
await midasdk.collection.getOfferList(bayc, usdc, account);

4.4 Buy NFT

a. Get FT Pool List:

await midasdk.collection.getCollectionFtFilter(bayc);

b. Get NFT Lists (LpAddress Interface from Above):

await midasdk.collection.getNftGoodsList(bayc, lpAddress);

c. Execute Buy Orders:

const minAmount = await midasdk.router().getMinAmountIn(pairAddress, [nftId]);
await midasdk.router().buyItems(bayc, usdc, [nftId], minAmount, deadline);

Please replace placeholders with actual values as needed in your code.

0.1.4

2 years ago

0.1.3

2 years ago