本文へ移動

結果と対処可能なエラー

Seamsの登録、ログイン、署名、復元、デバイス操作の結果を、判別可能なユニオンの全分岐で処理します。

結果と対処可能なエラー ​

公開操作は、複数の型の結果を返します。successやokがある場合は、最初に確認してください。 次に、分岐固有のkind、status、エラーコードを確認します。 一部の署名メソッドは、キャンセルや失敗時にPromiseを拒否します。戻り値の確認に加え、例外も処理してください。

登録 ​

RegistrationResultは、失敗とウォレット作成の成功を分けます。 成功結果は、利用可能な機能の分岐か、プロビジョニング待ちの状態を示します。 walletIdは、ウォレットの安定した識別子です。 チェーン固有のアカウントデータは、該当する機能やプロビジョニングの分岐に含まれます。

一致する結果分岐からフィールドを読み取ってください。 登録の成功は、要求したすべての署名機能の準備完了を保証しません。 NEARの準備待ちの場合は状態を監視し、準備完了の分岐からのみ続行してください。

ログインとセッション ​

LoginResultは、エラー文字列を含むsuccess: falseか、near_wallet_unlockedまたはecdsa_wallet_unlockedを含むsuccess: trueを使います。 nearAccountIdを持つのは、NEARの分岐だけです。 LoginAndCreateSessionResultは、signingSessionを含む場合もあります。 再利用可能な利用枠を有効と扱う前に、statusを確認してください。署名時は、正確なウォレット識別情報を保持してください。

署名とアクション ​

NEAR の signAndSendTransaction と sendTransaction は、回復可能な結果を ActionResult で返します。成功時は transactionId と result が必須です。 success: false の場合は kind を確認します。

Kind意味アプリの処理
not_submittedこの試行はトランザクションを送信していません。この試行の保留状態を解除し、新しい確認を提示できます。
unresolved送信を開始しました。transactionId を保持しています。このハッシュの状態を確認します。結果が不明な間は新しい送信を作成しません。
submission_unknownウォレットへ渡した要求の最終応答が失われました。次の送信前にウォレットの履歴を確認します。

アプリの状態は返された結果で更新します。進行イベントは表示に使います。 イベントの欠落や一般的なキャンセルエラーだけでは、送信の有無を判断できません。 完了コールバックの例外は、確定した操作結果を変更しません。 予期しないプログラムの不具合は引き続き try/catch で処理します。

NEP-413 メッセージ署名と EVM 系のメソッドは、それぞれの結果とエラーの契約を維持します。 メッセージ署名はトランザクションを送信しません。 現在の分岐に対応する対処方法を、ユーザーに表示してください。

外部NEARコネクター ​

開発プレビューのコネクターは、接続と送信からExternalNearResult<T>を返します。 valueを読む前にokを確認してください。送信成功時の結果はcheckOutcomeのために保持します。 unresolvedでは状態を再確認できます。 submission_unknownでは、次の送信前にウォレットまたはチェーンの履歴を確認します。 どちらの結果でも自動再送信は行わないでください。 外部接続の結果はSeamsのWallet Sessionを作成しません。

鍵のエクスポート ​

seams.keys.exportKey()は、ウォレットオリジンのビューアーが開くと、{ kind: 'exported' }を返します。 秘密鍵をアプリへ返すことはありません。 対象レーンの欠落、素材の欠落、完全なログインの要求は、Promiseの拒否になります。独自UIで処理してください。

デバイス連携の有効化は、型付きの拒否と整合性エラーの分岐を公開します。 結果の型の各分岐を処理してください。

エラー処理の規則 ​

  1. 結果ユニオンの全分岐を処理してください。
  2. 秘密情報を除き、安定したコードと操作の識別情報を記録してください。
  3. 再試行可能と記載された分岐だけを再試行してください。
  4. セッションやポリシーの分岐が要求する場合は、新たなユーザーの存在確認を求めてください。
  5. 送信状態が不明な操作を再実行する前に、チェーンの状態を照合してください。

進行状況の表示にはイベントと進行状況を、一般的な対処にはトラブルシューティングを参照してください。