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지원되는 프로토콜의 쉼표로 구분된 목록. 유효한 옵션: v2, v3, mixed
token0첫 번째 토큰의 세부정보 (주소 및 소수점 자릿수)
token1두 번째 토큰의 세부정보 (주소 및 소수점 자릿수)
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 라이선스로 출시되었습니다.