Перейти к основному содержанию

Предварительные требования

  • API ключ LaserSell (получите здесь).
  • Файл keypair Solana (JSON массив байтов).
  • Node.js 18+ (для примера на TypeScript) или среда выполнения для предпочитаемого языка.
Используете ИИ для кода? Добавьте MCP сервер LaserSell в ваш редактор, чтобы ИИ ассистент мог искать документацию LaserSell в реальном времени. Работает с Claude Code, Claude Desktop, Cursor и Windsurf.

Пример 1: Создание, подпись и отправка транзакции продажи

Этот пример вызывает LaserSell API для создания неподписанной транзакции продажи, подписывает её локально и отправляет через Helius Sender.
import { readFile } from "node:fs/promises";
import { Keypair } from "@solana/web3.js";
import {
  ExitApiClient,
  sendTransaction,
  sendTargetHeliusSender,
  signUnsignedTx,
  type BuildSellTxRequest,
} from "@lasersell/lasersell-sdk";

const apiKey = process.env.LASERSELL_API_KEY!;
const keypairPath = "./keypair.json";

// Load keypair
const raw = await readFile(keypairPath, "utf8");
const keypair = Keypair.fromSecretKey(
  Uint8Array.from(JSON.parse(raw))
);

// Build unsigned tx
const client = ExitApiClient.withApiKey(apiKey);
const request: BuildSellTxRequest = {
  mint: "So11111111111111111111111111111111111111112",
  user_pubkey: keypair.publicKey.toBase58(),
  amount_tokens: 1_000_000,
  slippage_bps: 2_000,
  output: "SOL",
};
const unsignedTxB64 = await client.buildSellTxB64(request);

// Sign locally
const signedTx = signUnsignedTx(unsignedTxB64, keypair);

// Submit
const signature = await sendTransaction(
  sendTargetHeliusSender(),
  signedTx
);
console.log("Signature:", signature);

Пример 2: Автоматическая продажа с Exit Intelligence Stream

Подключите Exit Intelligence Stream для мониторинга кошельков и автоматического исполнения выходов при достижении пороговых значений вашей стратегии.
Подключите поток перед покупкой. Поток обнаруживает позиции, наблюдая за поступлениями токенов в блокчейне. Если вы вызовете /v1/buy до подключения и конфигурации потока, позиция не будет отслеживаться. Всегда запускайте поток первым, затем отправляйте транзакцию покупки.
import { readFile } from "node:fs/promises";
import { Keypair } from "@solana/web3.js";
import {
  StreamClient,
  StreamSession,
  sendTransaction,
  sendTargetHeliusSender,
  signUnsignedTx,
} from "@lasersell/lasersell-sdk";

const apiKey = process.env.LASERSELL_API_KEY!;
const raw = await readFile("./keypair.json", "utf8");
const signer = Keypair.fromSecretKey(Uint8Array.from(JSON.parse(raw)));

const client = new StreamClient(apiKey);
const session = await StreamSession.connect(client, {
  wallet_pubkeys: [signer.publicKey.toBase58()],
  strategy: {
    target_profit_pct: 5,
    stop_loss_pct: 1.5,
  },
  deadline_timeout_sec: 45,
  send_mode: "helius_sender",
  tip_lamports: 1000,
});

while (true) {
  const event = await session.recv();
  if (event === null) break;

  if (event.type === "exit_signal_with_tx") {
    const signed = signUnsignedTx(event.message.unsigned_tx_b64, signer);
    const sig = await sendTransaction(sendTargetHeliusSender(), signed);
    console.log("Exit submitted:", sig);
  }
}

Следующие шаги