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 | サポートされるプロトコルのカンマ区切りリスト。有効なオプション:v2、v3、mixed |
token0 | 最初のトークンの詳細(アドレスと小数点以下の桁数) |
token1 | 2番目のトークンの詳細(アドレスと小数点以下の桁数) |
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);リポジトリ
- mimo-api: https://github.com/mimoprotocol/mimo-api
- mimoswap-sdk: https://github.com/mimoprotocol/mimoswap-sdk
入出力パラメータについては、Uniswap SDKドキュメントを参照してください。