Li.Fi 文档中文版beta
  • 🏠什么是 LI.FI?
  • ⭐为什么选择 LI.FI?
  • ❓常问问题
  • 💡用例
  • ✅支持的链、桥和交易所
  • 整合
    • 👋开始使用
    • 🛠️LI.FI SDK
      • 准备转移
        • 路线选项
        • 获取有关可用服务的信息
      • 执行路由
      • 高级功能
        • 处理链式开关
        • 加密和解密呼叫数据
      • 加载钱包余额
      • LiFi SDK 接口
    • ⚙️LI.FI API
      • 转移代币
      • 获取代币信息
      • 完整的 API 参考
  • 对于特殊的整合伙伴
    • DEX 和 DEX 聚合器
    • 钱包
  • 简单的整合
    • 🔁LI.FI 链接参数化
    • 🖼️LI.FI 小工具
Powered by GitBook
On this page
  • 安装
  • 演示
  • 下一步
  1. 整合

LI.FI SDK

将我们的 SDK 集成到您的 dApp/Wallet/swap UI

Previous开始使用Next准备转移

Last updated 3 years ago

这个包允许访问 Li.Fi API,它可以在不同的网桥和交易所找到最佳的跨链路由。 然后可以通过 SDK 执行路由。

安装

我们建议通过 npm 或 yarn 安装 SDK。

npm install --save @lifinance/sdk

或者

yarn add @lifinance/sdk

演示

取自示例

import sdk from "@lifinance/sdk";
import ethers from "ethers";

const Lifi = sdk.default;

async function demo() {
  // setup wallet
  if (!process.env.MNEMONIC) {
    console.warn(
      'Please specify a MNEMONIC phrase in your environment variables: `export MNEMONIC="..."`'
    );
    return;
  }
  console.log(">> Setup Wallet");
  const provider = new ethers.providers.JsonRpcProvider(
    "https://polygon-rpc.com/",
    137
  );
  const wallet = ethers.Wallet.fromMnemonic(process.env.MNEMONIC).connect(
    provider
  );

  // get Route
  console.log(">> Request route");
  const routeRequest = {
    fromChainId: 137, // Polygon
    fromAmount: "1000000", // 1 USDT
    fromTokenAddress: "0xc2132d05d31c914a87c6611c10748aeb04b58e8f", // USDT
    toChainId: 100, // xDai
    toTokenAddress: "0x4ecaba5870353805a9f068101a40e0f32ed605c6", // USDT
    options: { slippage: 0.03 },
  };

  const routeResponse = await Lifi.getRoutes(routeRequest);
  const route = routeResponse.routes[0];
  console.log(">> Got Route");
  console.log(route);

  // execute Route
  console.log(">> Start Execution");
  const settings = {
    updateCallback: (updatedRoute) => {
      let lastExecution;
      for (const step of updatedRoute.steps) {
        if (step.execution) {
          lastExecution = step.execution;
        }
      }
      console.log(lastExecution);
    },
    switchChainHook: async (requiredChainId) => {
      console.log(">>Switching Chains");
      const provider = new providers.JsonRpcProvider(
        "https://rpc.xdaichain.com/",
        requiredChainId
      );
      const wallet = ethers.Wallet.fromMnemonic(process.env.MNEMONIC).connect(
        provider
      );
      return wallet;
    },
  };
  await Lifi.executeRoute(wallet, route, settings);

  console.log("DONE");
}

demo();

下一步

查看如何使用准备传输。

🛠️
Github 存储库
LiFi SDK