rocketSDK ガイド

zerc20-client-sdk を使って TypeScript アプリケーションからプライベート zERC20 転送(Private Transfer)を送信する方法

前提条件

要件
詳細

Node.js

>= 18

EVM ウォレット

メッセージに署名できるウォレット(MetaMask、Rabby など)

サポートチェーン

Ethereum、Arbitrum、または Base

インストール

npm install zerc20-client-sdk

SDK を初期化する

createSdk() を呼び出して Zerc20Sdk インスタンスを取得します。すべてのオプションは省略可能で、省略した場合は適切なデフォルト値が使われます。

import { createSdk } from "zerc20-client-sdk";

const sdk = createSdk();

Zerc20SdkOptions には以下のオプションフィールドを指定できます:

フィールド
説明

wasm

WasmRuntime

カスタム WASM ランタイム(省略時は自動検出)

teleportProofs

TeleportProofClient

カスタム Teleport Proof クライアント

decider

HttpDeciderClient

Decider Prover エンドポイント

stealth

StealthClientFactory

カスタムステルスクライアントファクトリ

返された Zerc20Sdk は以下のフィールドに直接アクセスできます:

ICP に接続する

StealthCanisterClient を作成して ICP のストレージ canister・Key Manager canister とやり取りします:

agentstorageCanisterIdkeyManagerCanisterId フィールドは必須です。いずれかが欠けている場合(かつファクトリのデフォルトが設定されていない場合)、createStealthClient() はエラーをスローします。

EVM プロバイダー

SDK はライブラリ非依存のプロバイダーインターフェースを使っており、viem 以外のライブラリとも連携できます。

インターフェース
用途
viem の対応クラス

EvmReadProvider

コントラクト読み取り・残高クエリ・手数料推定

PublicClient

EvmWriteProvider

トランザクションの署名・送信

WalletClient

viem の PublicClientWalletClient はこれらのインターフェースを構造的に満たすため、アダプターは不要です。他のライブラリを使う場合は、必要なメソッドを実装する薄いアダプターを用意します。

トークンを読み込む

SDK はトークン設定を読み込む複数の方法を提供しています:

方法A:TokensCacheManager で圧縮データから読み込む

TokensCacheManager.load() はトークン設定 JSON を含む Base64 エンコードされた gzip 文字列を受け取ります。これはプロダクションのフロントエンドで使われている形式です。

方法B:normalizeTokens で生の JSON から読み込む

自前のデプロイからの tokens.json ファイルがある場合は、normalizeTokens() を使います:

方法C:RPC URL をオーバーライドする

normalizeTokensWithOverrides() を使うと、実行時にデフォルトの RPC URL を差し替えられます:

トークンの検索

トークン API の詳細は Token Registry を参照してください。

型シグネチャ

はじめてのプライベート送信

以下はエンドツーエンドの簡潔なコード例です。各ヘルパーの詳細は プライベート送信 ページを参照してください。

次のステップ

最終更新