Stablecoin用のラッパーAPIのデプロイとテスト

Wrapper APIパッケージのデプロイ

ラッパーAPIパッケージをデプロイする前に、必要な構成変数を更新する必要があります。一部の構成変数にはデフォルト値がありますが、プレースホルダを含む変数をデフォルト値として手動で更新する必要があります。構成変数は、ラッパーAPIアーカイブのterraform.tfvarsファイルに格納されます。ラッパーAPIのデプロイおよび構成変数の詳細は、Oracle Blockchain Platformのブロックチェーン・アプリケーション・ビルダーラッパーAPIを参照してください。次の表に、stablecoinラッパーAPIパッケージの構成変数とそのデフォルト値を示します。

変数名 デフォルト値 説明
compartment_ocid <compartment_ocid> Oracle Cloud Infrastructure (OCI)のコンパートメント内のOCID。
compartment_name <compartment_name> OCIコンパートメントの名前。
identity_domain <identity_domain> 使用するアイデンティティ・ドメイン。
blockchain_channel <blockchain_channel> チェーンコードがデプロイされるOracle Blockchain Platformチャネルの名前。
blockchain_url <blockchain_url> チェーンコード・デプロイメントに関連付けられたOracle Blockchain Platform URL。
blockchain_chaincode Stablecoin ラッパーAPIを生成するチェーンコードの名前。
blockchain_sync true APIコールのペイロードに含める同期値。
blockchain_timeout 6000 APIコールのペイロードに含めるタイムアウト値。
vcn_display_name Stablecoin OCI仮想クラウド・ネットワークの表示名。
application_display_name Stablecoin OCIアプリケーションの表示名。
gateway_display_name Stablecoin APIゲートウェイの表示名。
deployment_display_name Stablecoin APIゲートウェイでのデプロイメントの表示名。
deployment_path_prefix /Stablecoin APIゲートウェイのデプロイメント・パス接頭辞。ルートがデプロイされるパスを指定します。deployment_path_prefix変数はスラッシュ(/)で始まる必要があります。
ocir_repo_name Stablecoin OCIレジストリ・リポジトリ名。ocir_repo_name変数は、すべて小文字にする必要があります。
policy_name Stablecoin 組織内のグループおよびコンパートメントに対して定義された権限を介してAPIへの制御された管理およびアクセスを可能にするポリシーの名前

Stablecoinサンプル・プロセス・フロー

stablecoinラッパーAPIを使用する一般的なプロセス・フローは、これらの基本的なステップに従います。
  1. トークン管理者は、initializeStablecoinTokenメソッドを使用して、固定のcurrencyName値(USDなど)およびconversionRate値でstablecoinを初期化します。
  2. トークン管理者は、createAccountおよびassociateTokenToAccountメソッドを使用して、すべてのユーザー(複数レベルの承認者、マイナー、表記、送信者および受信者)のトークン・アカウントを作成します。
  3. トークン管理者は、createStablecoinAccountPolicyCheckメソッドを使用してアカウント・ポリシーを作成します。アカウント・ポリシーは、安定コインを転送または保持するすべてのアカウントに必須です。各アカウント・ポリシーには、KYCAMLおよびrestrictionFlagの3つのパラメータが含まれます。
    KYC (顧客身元確認)
    転送は、KYC値が送信者アカウントと受信者アカウントの両方でtrueの場合にのみ許可されます。
    AML (マネーロンダリング防止)
    転送は、送信者アカウントと受信者アカウントの両方でAML値がtrueの場合にのみ許可されます。
    restrictionFlag
    送信者アカウントまたは受信者アカウントに対して制限フラグがtrueに設定されている場合、転送は最下位の承認ポリシー・バケット範囲でのみ許可され、承認ポリシーは必須になります。
  4. トークン管理者は、createApprovalPolicyCheckを使用して承認ポリシーを作成します。承認ポリシーでは、トランザクションのしきい値、必要な数の承認および承認者詳細を定義し、複数レベルの承認の順序を設定します。保留操作には承認ポリシーが必須です。承認ポリシーがない場合、ユーザーは制限が適用されるときにトークンを保持または転送できません。
  5. トークン管理者は、addRoleメソッドを使用して、マイナー・ロール、バーナー・ロールおよび公証ロールを適切なアカウントに割り当てます。
  6. minterは、requestMintメソッドを使用して、stablecoinsをミントするリクエストを送信します。
  7. 公証人は、approveMintメソッドを使用してミント・リクエストを承認します。
  8. 送信者は、holdTokensメソッドを使用して転送を開始します。システムは、送信者および受信者のアカウント・ポリシー・チェックを実行します。いずれかのアカウントでKYCまたはAMLコンプライアンスが満たされていない場合、転送は許可されません。いずれかのアカウントに対して制限フラグがtrueに設定されている場合、承認ポリシーしきい値範囲の最下位の金額のみを保留にできます。次に、転送金額が承認ポリシーのしきい値と照合され、必要な承認者とその承認順序が承認ポリシーから導出されます。
  9. 複数レベルの承認者は、approveTransactionメソッドを使用して、承認ポリシーで定義された正確な順序で転送をレビューおよび認可します。承認ポリシーでゼロ承認者が指定されている場合、公証人はexecuteHoldTokensメソッドを直接使用してトランザクションを完了できます。システムは、executeHoldTokensおよびapproveTransactionへのすべてのコール中に、KYCおよびAMLコンプライアンスと制限フラグを再検証します。チェックが失敗した場合、トランザクションはブロックされます。
  10. すべての承認が正常に完了すると、割り当てられた公証人はexecuteHoldTokensメソッドを使用して、受け側のアカウントへの転送を完了します。
  11. バーナーは、requestBurnメソッドを使用して、安定したコインを書き込むリクエストを送信します。
  12. 公証人は、approveBurnメソッドを使用して書込みリクエストを承認します。
  13. トークン管理者および監査者は、getStablecointAccountTransactionHistoryおよびgetStablecoinAccountTransactionHistoryWithFiltersを使用して、ミント、保持、複数レベルの承認フロー、転送、書き込みなど、すべてのトークン・イベントを追跡します。

ポストマンコレクション

stablecoinラッパーAPIパッケージのPostmanコレクションには、stablecoinチェーンコードをサポートする追加属性とメソッドが含まれています。次の表に、stablecoinパッケージに固有のPostmanコレクション変数を示します。
可変 説明 デフォルト値
bc-instance-client-id Oracle Blockchain Platformクラウド・サービスのクライアントID。 bc-instance-client-id
bc-instance-client-secret Oracle Blockchain Platformクラウド・サービスのクライアント・シークレット。 bc-instance-client-secret
int-app-client-id Oracle Identity Cloud Service (IDCS)機密アプリケーションのクライアントID。CreateIDCSユーザーAPIでIDCSユーザーを作成するために使用されます。 アプリケーション内クライアントID
int-app-client-secret IDCS機密アプリケーションのクライアント・シークレット。CreateIDCSユーザーAPIでIDCSユーザーを作成するために使用されます。 アプリケーション・クライアント内シークレット

詳細は、Oracle Blockchain Platformのブロックチェーン・アプリケーション・ビルダーラッパーAPIパッケージ・コンポーネントを参照してください。