NEROChainコミュニティに参加して、今後の情報をお待ちください!

エラー処理

UserOpSDKは操作中にさまざまなエラーを返す可能性があります。このセクションでは、一般的なエラーとその処理方法について説明します。

一般的なエラータイプ

try {
  const result = await client.sendUserOperation(builder);
  // 結果を処理
} catch (error) {
  if (error.message.includes('AA1')) {
    console.error('アカウント作成に関連するエラーコード');
    // 資金不足エラーを処理
  } else if (error.message.includes('AA2')) {
    console.error('ユーザー操作の送信者に関連するエラーコード');
    // 検証エラーを処理
  } else if (error.message.includes('AA3')) {
    console.error('ペイマスターに関連するエラーコード');
    // ペイマスターエラーを処理
  } else if (error.message.includes('AA4')) {
    console.error('一般的な検証に関連するエラーコード');
    // ペイマスターエラーを処理
  } else if (error.message.includes('AA5')) {
    console.error('ユーザー操作が実行された後のアクションに関連するエラー');
    // ペイマスターエラーを処理
  } else {
    console.error('不明なエラー:', error);
    // その他のエラーを処理
  }
}

エラーコードカテゴリ

  • AA1 - アカウント作成エラー(例:反実仮想デプロイメントのための資金不足)
  • AA2 - 送信者エラー(例:無効な署名)
  • AA3 - ペイマスターエラー(例:預金不足、操作拒否)
  • AA4 - 一般的な検証エラー
  • AA5 - 実行後のエラー

ユーザーフレンドリーなエラー処理

ユーザーインターフェースを構築する際は、技術的なエラーをユーザーフレンドリーなメッセージに変換します:

function getUserFriendlyErrorMessage(error) {
  if (error.message.includes('AA21')) {
    return "このトランザクションを支払うのに十分な資金がありません。";
  } else if (error.message.includes('AA23')) {
    return "トランザクション署名が無効です。もう一度お試しください。";
  } else if (error.message.includes('AA25')) {
    return "ガス支払いの詳細が無効です。別の支払いオプションを選択してください。";
  } else {
    return "トランザクションの処理中にエラーが発生しました。もう一度お試しください。";
  }
}

次のステップ

エラー処理を実装した後、以下のことを検討するかもしれません: