Skip to content

SDK

Mimo V3のスワップ機能のSDKをオープンソース化しました。

インストール

bash
npm install @dappworks/mimoswap-sdk

取引API

REST API

取引の見積もりを取得するためにPOSTリクエストを行います:

bash
curl 'https://swap-api.mimo.exchange/api/trade' \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'Content-Type: application/json' \
  --data-raw '{
    "chainId": 4689,
    "protocols": "v2,v3,mixed",
    "token0": {"address":"IOTX","decimals":18},
    "token1": {"address":"0x97e6c48867fdc3918dfe9d169ecd005d1d90283","decimals":18},
    "recipient":"0x7890256910829ECc1CDD50AB50B1E92EC90A28da",
    "amount":"10000000000000000000",
    "slippage":{"numerator":50,"denominator":10000},
    "tradeType":"EXACT_INPUT"
  }'

パラメータ

パラメータ説明
chainIdブロックチェーンネットワークのID(例:IoTeXの場合は4689)
protocolsサポートされるプロトコルのカンマ区切りリスト。有効なオプション:v2v3mixed
token0最初のトークンの詳細(アドレスと小数点以下の桁数)
token12番目のトークンの詳細(アドレスと小数点以下の桁数)
recipient出力トークンを受け取るウォレットアドレス
amount交換する入力トークンの量(文字列として)
slippage許容されるスリッページ許容値(分子/分母)
tradeType通常は"EXACT_INPUT"または"EXACT_OUTPUT"

SDKの使用方法

typescript
import { parseUnits } from 'viem';
import {
  ChainId,
  Token,
  CurrencyAmount,
  TradeType,
  Percent,
} from '@dappworks/mimoswap-sdk/sdk-core';
import { JsonRpcProvider } from '@ethersproject/providers';
import {
  AlphaRouter,
  ID_TO_CHAIN_ID,
  ID_TO_PROVIDER,
  SwapType,
} from '@dappworks/mimoswap-sdk';

// 設定
const chainId = ID_TO_CHAIN_ID(ChainId.IOTEX);
const chainProvider = ID_TO_PROVIDER(chainId);
const provider = new JsonRpcProvider(chainProvider, chainId);

// トークンを作成
const tokenIn = new Token(chainId, '0xa7108637552cec7e8c2dd08a9cd995caff8b4280', 18);
const tokenOut = new Token(chainId, '0x61db9b084326d2251ccb0252c18fd9b0e887ca4f', 18);

// ルーターを作成
const router = new AlphaRouter({ chainId, provider });

// ルートを取得
const route = await router.route(
  CurrencyAmount.fromRawAmount(tokenIn, parseUnits('1', 6).toString()),
  tokenOut,
  TradeType.EXACT_INPUT,
  {
    recipient: '0x0000000000000000000000000000000000000000',
    slippageTolerance: new Percent(1000, 10_000),
    type: SwapType.UNIVERSAL_ROUTER,
  },
  {
    protocols: [Protocol.MIXED],
  }
);

console.log('route =>', route);

リポジトリ

入出力パラメータについては、Uniswap SDKドキュメントを参照してください。

MITライセンスでリリースされています。