mcpField
T
ts-sdk-client

ts-sdk-client

github.com/aptos-labs開発2071 回インストール24 週間前に更新
リポジトリ

ts-sdk-client について

Aptos アプリを開発する TypeScript 開発者向けに、`@aptos-labs/ts-sdk` のクライアント設定を案内するスキルです。ネットワーク選択、エンドポイント指定、インスタンスの再利用を扱います。

主な機能

  1. 01AptosConfig のネットワーク設定
  2. 02Aptos クライアントの単一インスタンス化
  3. 03カスタムサービスエンドポイントの指定
  4. 04Bun 向け HTTP 設定
  5. 05アカウント・トランザクション API の利用

活用シーン

  1. 01Aptos dApp クライアントの設定
  2. 02テストネットまたはメインネットの選択
  3. 03カスタム fullnode・indexer URL の設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aptos-labs/aptos-agent-skills --skill ts-sdk-client

インストール後、Claude Code で/ts-sdk-clientを入力して読み込まれたか確認します。

詳細

TypeScript SDK:Aptos クライアント

目的

@aptos-labs/ts-sdk で Aptos クライアントと AptosConfig を作成および設定する方法を説明します。すべての読み取り/書き込み API とアカウント/トランザクション API で、同じクライアントインスタンスを使用します。

必ず行うこと

  1. アプリごとに Aptos インスタンスを 1 つ作成し(シングルトン)、再利用します。同じネットワークに対して new Aptos(config) を複数回呼び出さないでください。
  2. AptosConfig でネットワークを設定します。Network.TESTNET または Network.MAINNET(またはカスタムエンドポイント)を使用します。
  3. 本番環境ではネットワーク/URL に環境変数を使用します。例:process.env.APTOS_NETWORK または import.meta.env.VITE_APP_NETWORK。
  4. 開発環境では Network.TESTNET をデフォルトとして使用します。devnet は頻繁にリセットされます。

決して行わないこと

  1. リクエストごとに新しい Aptos クライアントを作成しないでください。シングルトンを再利用します。
  2. パブリックネットワークを使用するとき、ソースコードに fullnode/indexer の URL を直接記述しないでください。Network 列挙型を使用します。
  3. カスタムエンドポイントを使用するときに network を省略しないでください。v5.2 以降では、カスタム URL とともに Network.CUSTOM を使用します。

基本設定

import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";

const config = new AptosConfig({ network: Network.TESTNET });
const aptos = new Aptos(config);

ネットワークのオプション

// Predefined networks
const devnet = new AptosConfig({ network: Network.DEVNET });
const testnet = new AptosConfig({ network: Network.TESTNET });
const mainnet = new AptosConfig({ network: Network.MAINNET });

// Custom endpoints (network is REQUIRED in v5.2+)
const custom = new AptosConfig({
  network: Network.CUSTOM,
  fullnode: "https://your-fullnode.example.com/v1",
  indexer: "https://your-indexer.example.com/v1/graphql",
  faucet: "https://your-faucet.example.com"
});

シングルトンパターン(推奨)

// lib/aptos.ts or similar
import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";

function getNetwork(): Network {
  const raw = typeof process !== "undefined" ? process.env.APTOS_NETWORK : import.meta.env?.VITE_APP_NETWORK;
  switch (raw) {
    case "mainnet":
      return Network.MAINNET;
    case "devnet":
      return Network.DEVNET;
    default:
      return Network.TESTNET;
  }
}

const config = new AptosConfig({ network: getNetwork() });
export const aptos = new Aptos(config);

オプションのエンドポイント(サービスごとに上書き)

const config = new AptosConfig({
  network: Network.TESTNET,
  fullnode: "https://fullnode.testnet.aptoslabs.com/v1", // override default
  indexer: "https://indexer.testnet.aptoslabs.com/v1/graphql",
  faucet: "https://faucet.testnet.aptoslabs.com",
  pepper: "https://...", // keyless pepper service
  prover: "https://..." // keyless prover
});
const aptos = new Aptos(config);

クライアント設定(HTTP、タイムアウト、Bun)

// Disable HTTP/2 when using Bun (recommended)
const config = new AptosConfig({
  network: Network.TESTNET,
  clientConfig: { http2: false }
});
const aptos = new Aptos(config);

クライアントの使用

作成後は、次の用途で同じ aptos インスタンスを使用します。

  • アカウント/残高: aptos.getAccountInfo()、aptos.getBalance()、aptos.getAccountResources() など。
  • トランザクション: aptos.transaction.build.simple()、aptos.signAndSubmitTransaction()、 aptos.waitForTransaction()。
  • ビュー: aptos.view()。
  • フォーセット: aptos.fundAccount()(devnet/testnet)。
  • コイン/トークン/オブジェクト/ANS/ステーキング: aptos.coin.*、aptos.digitalAsset.*、aptos.fungibleAsset.*、 aptos.object.*、aptos.ans.*、aptos.staking.*。

よくある間違い

間違い正しい方法
関数ごとに Aptos を作成するシングルトンを 1 つ作成し、aptos を渡すか、共有モジュールからインポートします
永続的な開発環境に devnet を使うtestnet を優先します。devnet はリセットされます
Network.CUSTOM を使わずにカスタム URL を指定するfullnode/indexer/faucet を指定するときは network: Network.CUSTOM を設定します
Bun で http2: false を設定し忘れるBun では clientConfig: { http2: false } を設定します

参考資料

コメント