cryptofoundry

cryptofoundry へのお問い合わせ

構築または自動化したい内容をお聞かせください。

Dev Guidelines & Docs

ADAMANTでのチャット内および直接的な暗号資産の送金

ADAMANT Messengerは、チャット内での送金とウォレット画面からの直接送金の両方をシームレスにサポートしており、すべての操作はトランザクション履歴に記録されます。

チャット内での暗号資産送金

送金前に、アプリはユーザーのADM残高、インターネット接続、ADMノードの可用性、および暗号資産ノードの可用性をヘルスチェックにより検証します。いずれかのチェックが失敗した場合、アプリはエラーを表示し、再試行を許可します。

トランザクション処理の流れは、暗号資産のトランザクションとADMのトランザクションをローカルで生成することから始まります。ETHのようにnonceを使用するチェーンでは、同じnonceを持つトランザクションが既に成功していないかをローカルストレージで確認します。BTC、DOGE、DASHなどnonceを使わないチェーンでは、ローカルストレージを確認し、ブロックチェーンに保留中のトランザクションがないか照会します。保留中または成功済みの重複が見つかった場合、処理は停止します。

次に、ADMトランザクションがADMノードに送信されます。承認されると、チャットに追加され、アプリは「送金」画面に留まります。暗号資産のトランザクションはローカルデータベースに保存され、「保留中(Pending)」ステータスでトランザクション履歴に表示されます。実際のブロックチェーンタイムスタンプが利用可能になるまで、アプリは表示順序のためにローカルに保存されたタイムスタンプに依存します。これは非ADMコインの送金において特に重要です。コインノードからの応答がまだない中で、ユーザーには即時フィードバックが必要だからです。

その後、暗号資産のトランザクションがコインノードに送信されます。応答が正常であれば、トランザクションは「保留中」としてマークされ、ユーザーはチャット画面またはトランザクション詳細画面に移動します。送信に失敗した場合はスナックバーにエラーが表示され、ユーザーは再試行できます。再試行ではまったく新しいトランザクションが生成されます。再試行せずにチャットに戻った場合でも、ADMメッセージはすでに送信されているため、失敗したトランザクションはチャットと履歴に引き続き表示されます。トランザクションの更新はバックグラウンドで継続されます。

暗号資産の送信前にADMトランザクションを生成することで、チャットに記録されないまま暗号資産が送金されることが防がれます。これにより、ユーザーが暗号資産を送ったにもかかわらずそれを認識できず、誤って再送信してしまうリスクが排除されます。

直接的な暗号資産送金(ウォレット画面)

ウォレット画面からの直接送金は、いくつかの例外を除き、チャット内送金と同様のプロセスです。ADM残高のチェック、ADMノードのチェック、およびADMトランザクションの作成はスキップされます。処理完了後、ユーザーはチャットではなくトランザクション履歴にリダイレクトされます。

トランザクション履歴

トランザクション履歴は、ローカルに保存されたトランザクションと、ブロックチェーンノードAPIから同期されたデータを統合して表示します。ローカルに保存されたトランザクションはアプリの再起動後も保持されますが、ログアウトまたは再ログイン時にクリアする必要があります。これにより、他のアカウントの履歴が誤って表示されるのを防ぎます。この統合により、ユーザーの送金履歴を正確かつ最新の状態で把握できます。可能な限りアプリは、トランザクション生成、残高、nonce、重複、タイムスタンプについて、ネットワークリクエストを待たずに応答性の高いユーザー体験を実現するため、ローカルでの計算とチェックを利用しています。

Discussion screenshot 1