Sui.

Допис

Діліться своїми знаннями.

article banner.
fomo on Sui.
Jul 08, 2025
Стаття

Як поміняти токен за допомогою 7k SDK

У цьому посібнику я розповім вам, як встановити та використовувати @7kprotocol/sdk-ts


###Встановлення

Для початку спочатку встановіть SDK разом з його необхідними залежностями.

1.Встановіть пакет SDK:

Виконайте наступну команду, щоб встановити @7kprotocol/sdk-tsпакет:

   npm i @7kprotocol/sdk-ts
   ```

2.**Встановіть залежність від однолітків**:

SDK вимагає `@pythnetwork/pyth-sui-js`як однорангової залежності. Якщо у вас його ще не встановлено, виконайте таку команду:

```bash
   npm i @pythnetwork/pyth-sui-js
   ```


###**Налаштування суї-клієнта**

Щоб підключитися до блокчейну Sui, потрібно встановити клієнт Sui. Зробити це можна наступним чином:

```tsx
import { SuiClient, getFullnodeUrl } from "@mysten/sui/client";
import { Config } from "@7kprotocol/sdk-ts";

const network = "mainnet"; // Use "mainnet" for production
const suiClient = new SuiClient({ url: getFullnodeUrl(network) });
Config.setSuiClient(suiClient);
console.log("Sui client", Config.getSuiClient());

Примітка. Цей SDK наразі підтримує лише основну мережу.


###Виконання транзакцій

Однією з основних особливостей цього SDK є можливість обміну токенами та виконання транзакцій. Давайте розглянемо дві ключові операції:

###1. Отримати пропозицію на Swap

Щоб отримати пропозицію на обмін токенами, скористайтеся getQuoteфункцією. Це дасть вам деталі свопу, такі як сума, яку ви можете отримати, та найкращий можливий маршрут.

Приклад:

import { getQuote } from "@7kprotocol/sdk-ts";

const quoteResponse = await getQuote({
  tokenIn: "0x2::sui::SUI", // Token you're swapping from
  tokenOut: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC", // Token you're swapping to
  amountIn: "1000000000", // Amount you're swapping (in smallest unit)
});

Ви також можете вказати список DEX, з яких витягнути лапки. Якщо не вказано, SDK використовуватиме останні підтримувані джерела.

const quoteResponse = await getQuote({
  tokenIn: "0x2::sui::SUI",
  tokenOut: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
  amountIn: "1000000000",
  sources: [
    "suiswap",
    "turbos",
    "cetus",
    "bluemove",
    "kriya",
    "kriya_v3",
    "aftermath",
    "flowx",
  ], // Optional: list of supported sources
});

###2. Створення транзакції

Після того, як у вас є пропозиція, наступним кроком є побудова транзакції. Ви можете використовувати buildTxфункцію для створення транзакції з необхідними деталями, такими як ковзання та комісія.

import { buildTx } from "@7kprotocol/sdk-ts";

const result = await buildTx({
  quoteResponse,
  accountAddress: "0xSenderAddress", // Your wallet address
  slippage: 0.01, // 1% slippage tolerance
  commission: {
    partner: "<address to receive fee>", // Partner address for commission
    commissionBps: 0, // Commission rate in basis points (0 means no fee)
  },
});

const { tx, coinOut } = result || {};

Примітка. Навіть якщо CommissionBps встановлено на 0, вам все одно потрібно вказати адресу партнера для відстеження та аналітики.


###Повний приклад

Ось повний приклад, який поєднує все це разом:

import { SuiClient, getFullnodeUrl } from "@mysten/sui/client";
import { getQuote, buildTx, executeTx, BluefinXTx } from "@7kprotocol/sdk-ts";
import { useSignTransaction } from "@mysten/wallet-kit";

// Initialize Sui Client
const network = "mainnet";
const suiClient = new SuiClient({ url: getFullnodeUrl(network) });
Config.setSuiClient(suiClient);

// Get Quote
const quoteResponse = await getQuote({
  tokenIn: "0x2::sui::SUI",
  tokenOut: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
  amountIn: "1000000000",
  sources: ["bluefinx"],
});

// Build Transaction
const { tx } = await buildTx({
  quoteResponse,
  accountAddress: "0xSenderAddress",
  slippage: 0.01,
  commission: {
    partner: "<address to receive fee>",
    commissionBps: 0,
  },
});

// Sign Transaction
const { mutateAsync: signTransaction } = useSignTransaction();
const { signature, bytes } = await signTransaction({
  transaction: tx instanceof BluefinXTx ? tx.txBytes : tx,
});

// Execute Transaction
const res = await executeTx(tx, signature, bytes);
console.log(res);

  • Sui
  • SDKs and Developer Tools
0
Поділитися
Коментарі
.

Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.

394Пости554Відповіді
Sui.X.Peera.

Зароби свою частку з 1000 Sui

Заробляй бали репутації та отримуй винагороди за допомогу в розвитку спільноти Sui.

Кампанія винагородЛипень