NEROChainコミュニティに参加して、今後の情報をお待ちください!
開発者ツールUserOp SDKベストプラクティス

ベストプラクティス

本番アプリケーションでUserOpSDKの使用を最適化するために、これらのベストプラクティスに従ってください。

1. AAウォレットアドレスをキャッシュする

冗長な計算を避けるために、AAウォレットアドレスを計算して保存します:

// 一度計算してデータベースやローカルストレージに保存
const aaWalletAddress = await builder.getSender();

2. 包括的なエラー処理を実装する

ユーザーエクスペリエンスを向上させるために、すべての潜在的なエラーを適切に処理します:

try {
  const result = await client.sendUserOperation(builder);
  // 成功パス
} catch (error) {
  // 異なるエラータイプを分類して処理
  if (error.message.includes('AA21')) {
    // 資金不足を処理
  } else if (error.message.includes('AA31')) {
    // ペイマスター検証エラーを処理
  } else {
    // 一般的なエラー処理
  }
}

3. ガス見積もり

複雑な操作では、十分なガスを確保するためにガス見積もり関数を使用します:

// 送信前にガスを見積もる
const gasEstimation = await client.estimateUserOperationGas(builder);
builder.setCallGasLimit(gasEstimation.callGasLimit);
builder.setVerificationGasLimit(gasEstimation.verificationGasLimit);
builder.setPreVerificationGas(gasEstimation.preVerificationGas);

4. テストネットでテストする

メインネットにデプロイする前に、必ずNERO Chainのテストネットで実装をテストしてください:

// テストネット設定
const NERO_TESTNET_RPC_URL = "https://rpc-testnet.nerochain.io";
const TESTNET_BUNDLER_URL = "https://bundler-testnet.nerochain.io";
const TESTNET_PAYMASTER_URL = "https://paymaster-testnet.nerochain.io";

5. セキュリティ

秘密鍵やAPIキーをクライアントサイドコードに保存しないでください:

// 悪い例:ハードコードされたAPIキー
const PAYMASTER_API_KEY = "your-api-key"; // これはしないでください!
 
// 良い例:サーバー上で環境変数から読み込む
const PAYMASTER_API_KEY = process.env.PAYMASTER_API_KEY;

追加リソース

詳細と高度なユースケースについては、以下のリソースを参照してください: