Documentation Index
Fetch the complete documentation index at: https://docs.lasersell.io/llms.txt
Use this file to discover all available pages before exploring further.
HTTPステータスコード
| ステータス | 意味 | リトライ可能 |
|---|
| 200 | 成功 | N/A |
| 400 | 不正リクエスト(無効なパラメータ、無効なミント、非対応トークンプログラム) | いいえ |
| 401 | 未認証(APIキーの欠落または無効) | いいえ |
| 404 | 非対応マーケットまたはミント未インデックス | いいえ(下記参照) |
| 422 | 処理不能(有効なリクエストだが実行可能なルートなし) | いいえ |
| 429 | レート制限 | はい |
| 502 | Bad Gateway(上流RPCまたはDEX障害) | はい |
| 503 | サービス利用不可(ルーター未準備またはポーズ中) | はい |
| 500 | 内部サーバーエラー | はい |
レスポンスエンベロープ
{
"status": "ok",
"tx": "base64-encoded unsigned transaction",
"route": { "market_type": "pumpswap", "pool_id": "..." }
}
非対応マーケット
サポートされているDEXでミントに実行可能なルートがない場合に返されます。messageフィールドは人間とAIが読める説明を提供します。
{
"status": "unsupported",
"reason": "no_route",
"message": "No supported market found for this mint. Supported DEXs: PumpSwap, Raydium (CPMM, Launchpad), Meteora (DBC, DAMM v2), Pump.fun."
}
| 理由 | ステータス | 説明 |
|---|
no_route | 404 | サポートされているDEXにこのミントのプールがない |
invalid_mint | 400 | ミントアドレスがオンチェーンに存在しない |
unsupported_token_program | 400 | トークンがSPL TokenまたはToken-2022以外のプログラムを使用 |
未インデックス
ミントは存在するがまだ解決されていない場合に返されます。短い遅延後にリトライしてください。
{
"status": "not_indexed",
"mint": "So11111111111111111111111111111111111111112",
"reason": "mint not indexed yet; try again shortly"
}
エラー
バリデーション失敗、レート制限、サーバーエラーの一般的なエラーレスポンスです。
{
"error": "descriptive error message"
}
SDKはすべてのレスポンスバリアントを解析し、ExitApiError型を通じて提供します。
ExitApiErrorの種類
すべてのSDKはkind識別子を持つExitApiError(または同等のもの)を公開します:
| 種類 | トリガー | リトライ可能 |
|---|
transport | ネットワーク障害、DNSエラー、タイムアウト | はい |
http_status | 非2xx HTTPレスポンス | ステータスが500以上または429の場合はい |
envelope_status | サーバーが{ "status": "error" }を返した | いいえ |
parse | レスポンスボディをJSONとして解析できなかった | いいえ |
リトライ可能性の確認
import { ExitApiError } from "@lasersell/lasersell-sdk";
try {
const response = await client.buildSellTx(request);
} catch (error) {
if (error instanceof ExitApiError) {
console.log("Kind:", error.kind);
console.log("Retryable:", error.isRetryable());
console.log("HTTP status:", error.status);
console.log("Body:", error.body);
}
}
組み込みリトライ動作
すべてのSDKには以下のデフォルトで自動リトライが含まれています:
| 設定 | デフォルト値 |
|---|
| 最大試行回数 | 2 |
| 初期バックオフ | 25 ms |
| 最大バックオフ | 25 ms |
| ジッター | 25 ms |
| 接続タイムアウト | 200 ms |
| 試行タイムアウト | 900 ms |
リトライはisRetryable()がtrueを返すエラー(トランスポート障害、5xxレスポンス、429レート制限)に対してのみ発動します。
リトライポリシーのカスタマイズ
const client = ExitApiClient.withOptions("YOUR_API_KEY", {
attempt_timeout_ms: 2000,
retry_policy: {
max_attempts: 3,
initial_backoff_ms: 50,
max_backoff_ms: 200,
jitter_ms: 50,
},
});
ベストプラクティス
400、401、422エラーはリトライしないでください。コードで修正すべきリクエストまたは認証の問題を示しています。
"status": "unsupported"の404はリトライしないでください。ミントにサポートされているマーケットがありません。
"status": "not_indexed"の404は1回リトライしてください。ミントの解決に少し時間が必要な場合があります。
429レスポンスには指数バックオフで待機してください。組み込みリトライがこれを自動処理します。
502および503エラーにはバックオフ付きでリトライしてください。一時的なインフラ問題です。
- デバッグ用に
kind、status、bodyを含むエラー詳細をログに記録してください。
- 一貫して
envelope_statusエラーが発生する場合は、mintアドレスとuser_pubkeyが正しいことを確認してください。