トラストラインの挙動について | JavaScriptでのXRPL開発 三段編
次は、オファーを行った際の、トラストラインの挙動について解説します。
ボブが発行者BのB.EUR
を売り、発行者AのA.USD
買うオファーを出し、そのB.EUR
が最終的にダニエルに届くような流れを試してみましょう。
前提
チャーリーは、ダニエルに支払いを行う必要がありますが、ダニエルはB.EUR
で受け取りたいそうです。しかし、現時点では、チャーリーはB.EUR
を保有していないため、
XRP
と発行者AのA.USD
しか保有していないチャーリーは、手持ちのA.USD
を交換できないかと考えました。
- ボブが発行者Bの
B.EUR
を売り、発行者AのA.USD
を買うオファーを出して、流動性を提供しましょう。 - チャーリーから
A.USD
をダニエルにB.EUR
として、送付する手続きを行います。
スクリプトの作成
-
作成済みの
createOffers.js
で、ボブからオファーを出します。 -
作成済みの
crossCurrencyPayment.js
で、チャーリーから支払いを行います。
スクリプトの実行
-
コマンドラインで以下のコマンドを実行して、スクリプトを実行します。
-
crossCurrencyPayment.js
の結果として、以下のようなログが表示されれば成功です。この時点で、以下のようになっていることをエクスプローラで確認してください。
- ボブは
B.EUR
の残高が900
に減少、A.USD
の残高が100
に増加しました。 - チャーリーは
A.USD
の残高が1,000
に増加しました。(初期状態に戻る) - ダニエルは
B.EUR
の残高が1,000
に増加しました。(初期状態に戻る)
- ボブは
トラストラインについて
ボブはA.USD
に対してトラストラインの設定を明示的に行っていないにも関わらず、A.USD
の保有ができている状態になりました。
これは、OfferCreate
トランザクションが引き起こす挙動で、「A.USD
が欲しいという注文 = トラストした」と解釈していただければ良いかと思います。
次章では、クロスカレンシー送金のパターンなどについて解説します。