マティアス・ベンコート、ジェイコブ・ミッチェル
このブログでは、ウォレット API の主任マティアス・ベンコート(Matthias Benkort)が、Cardano 1.4で登場した下位互換性のないCardano ウォレットのAPIの変更について説明しています。DevOps の主任ジェイコブ・ミッチェル(Jacob Mitchell)は、新しいAPIのみを提供するデフォルトのオプションではなく、古いV0のウォレット APIと新しいV1の ウォレット APIの両方でCardano クライアントを構築する方法を示しています。
このブログ記事は主に、Cardano ウォレット APIの現在のユーザーを対象としています。特に、Cardano 1.4 以前の V1 APIのBETA リリースと既に統合しているユーザーに向けられています。
Cardano ウォレット APIには、独自のバージョニングがあります。 カルダノ1.4 から、以前の V0 ウォレット APIは廃止されます。 すべてのV0 API RESTエンドポイントは、 V1 APIに移植され、ウォレットの書き直しにより、ウォレット チームにはCardano ウォレットのセマンティクスを修正し改善する機会が与えられました。 その結果、下記のように4つの大きな変化が生じました。 V1 ウォレット APIは、Cardano 1.4のデフォルトウォレット APIになります。
-
NotEnoughMoney エラーの診断構造は、より多くの場合に対応するよう変更されました。
-
WalletAlreadyExists エラーの診断構造は修正され、前から存在するウォレットのIDのために追加フィールド walletId を設けました。
-
/api/v1/addresses/{address} の動作は、アドレスに関するオーナーシップの意味をより正確に反映するよう調整されています。 このエンドポイントの以前のバージョンは、指定されたアドレスがウォレットに認識されていない場合、HTTPエラーとして失敗になっていました。 これは、ウォレットにとって未知のアドレスがまだ属している可能性があるため、誤解を招くものでした。 これを反映するために、V1エンドポイントはもう失敗しなくなり、アドレスが認識されない場合は新しいフィールド isOurs が返されるようになりました。 これは、そのアドレスが私たちのものであるか、または認識されていないことを示します。
-
/api/v1/wallets/{wallet} に対するDELETEリクエストは、ウォレットが存在しない場合、正しく404 HTTP応答コードで失敗するようになりました。 以前は誤って 204 で対応していました。
実行されているデータの層が新しいか古いかに関係なく、V1 API は上記の変更を行います。 最初の2つの変更は、開発者が何が起こっているのかを理解できるようにすることを主な目的としています。 取引所や他の当事者が、APIまたはフロントエンド用の特定のエラーメッセージを作成するためにこれを使用していた場合は、破損する可能性があります。
3番目の変更は細かいもので、実際はバグ修正です。 GETアドレスエンドポイントの古い動作は、ノードに間違った情報を送信していたため、精度を向上させるために修正しました。 それを行いつつ、私たちは新しい isOurs フィールドを導入して、どんなHTTPステータスが送信されていたのかをレビューする必要がありました。取引所がビジネスロジックでこれに依存している場合は、アップデートが必要になります。
Cardano 1.4 のデフォルトインストールでは、V1 ウォレット API だけが使用されます。
一般的に、取引所やその他のインテグレーターは、メインネットに対してCardano ウォレットを起動するシェルスクリプトを使用しつつ、安定したリリースを使用してCardano クライアントを構築します。
nix-build -A connectScripts.mainnet.wallet
この場合ロールバックはありません。Cardano ウォレットは V1 にアップグレードされます。
V0とV1の両方の機能を持たせるには、開発者は useLegacyDataLayer を custom-wallet-config.nix ファイルの中で使用する必要があります。詳細は 取引所向け文書に記されています。 気をつけて! このモードでは、 V1 エンドポイントを使用可能にしても、 API は新しく開発されたデータ層を利用しません。 その結果、開発者は、従来のデータ層の既知の制限を経験するかもしれません。 したがって、このモードはお奨めしません。私たちはユーザーにはこれを使わずにノードを実行することを強くお奨めします。
Cardano 1.4 のウォレット APIで登場する、ウォレット API の下位互換性のない変更についての説明はこれで終わりです。 1.4 へのアップグレードに問題のある方は、すでに確立されている通信チャンネルか、私たちのサポートポータルを通じて支援を求めてください。