الانتقال إلى المحتوى الرئيسي

المتطلبات

  • مفتاح LaserSell API (احصل على واحد هنا).
  • ملف زوج مفاتيح Solana (مصفوفة JSON من البايتات).
  • Node.js 18+ (لمثال TypeScript) أو بيئة التشغيل للغتك المفضلة.
تستخدم الذكاء الاصطناعي للبرمجة؟ أضف خادم LaserSell MCP إلى محررك حتى يتمكن مساعدك الذكي من البحث في وثائق 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: البيع التلقائي مع بث ذكاء الخروج

اتصل ببث ذكاء الخروج لمراقبة المحافظ وتنفيذ عمليات الخروج تلقائياً عند الوصول إلى عتبات استراتيجيتك.
اتصل بالبث قبل الشراء. يكتشف البث المراكز من خلال مراقبة وصول الرموز على السلسلة. إذا استدعيت /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);
  }
}

الخطوات التالية