Stablecoin契約のデプロイおよびテスト
CLIを使用するか、ブロックチェーン・アプリケーション・ビルダーのMicrosoft Visual Studio Code拡張機能を使用して、契約をデプロイできます。
Visual Studio Codeからのデプロイ
ブロックチェーン・アプリケーション・ビルダーのVisual Studio Code拡張機能を使用して契約をデプロイするには、次のステップを実行します。
Stablecoin.zipアーカイブ・ファイルを抽出します。Stablecoin契約をVisual Studio CodeのBlockchain App Builder拡張機能にインポートします。- インポートしたプロジェクトを選択し、「デプロイ」タブを選択します。
詳細は、Visual Studio Code用のブロックチェーン・アプリケーション・ビルダー拡張機能の使用を参照してください。
コマンドラインからの配置
コマンドラインから契約をデプロイするには、次のステップを実行します。
Stablecoin.zipアーカイブ・ファイルを抽出します。- 依存関係をインストールするには、次のコマンドを実行します。
npm install - 次のコマンドを実行して、契約をコンパイルします。
npx hardhat clean npx hardhat compile - 次のネットワーク変数を構成します。
次のテキストは、変数構成の例を示しています。npx hardhat vars set BESU_CHAIN_ID <chain-id> npx hardhat vars set BESU_RPC_URL <rpc-url> npx hardhat vars set BESU_RPX_PROXY_AUTH_TOKEN "Bearer {auth-token}" npx hardhat vars set WALLET_SERVICE_BASE_URL <wallet-svc-url> npx hardhat vars set WALLET_SERVICE_ENABLED true npx hardhat vars set WALLET_SERVICE_ACCOUNTS <wallet-svc-accounts> npx hardhat vars set WALLET_SERVICE_AUTH_TOKEN "Bearer {auth-token}"npx hardhat vars set BESU_CHAIN_ID 1500 npx hardhat vars set BESU_RPC_URL https://rpcproxy.example.com/v1/besu/proxy npx hardhat vars set BESU_RPX_PROXY_AUTH_TOKEN "Bearer ej1q..." npx hardhat vars set WALLET_SERVICE_BASE_URL https://rpcproxy.example.com/v1/besu/transaction npx hardhat vars set WALLET_SERVICE_ENABLED true npx hardhat vars set WALLET_SERVICE_ACCOUNTS '[{"address":"0xFf93749DEFa27077d055581642E077E94426A89C","walletId":"031cab07-ca25-422f-84a0-4a78d89982cc"}]' npx hardhat vars set WALLET_SERVICE_AUTH_TOKEN "Bearer ej1q..." - 契約をデプロイします。すべてのデプロイメントには、
DEPLOYMENT_ID、GOVERNANCE_ADDRESSおよびGOVERNANCE_UUIDの変数が必要です。- デプロイメントが失敗した場合は、同じ
DEPLOYMENT_ID値で再度実行して再開します。デプロイメントが成功すると、再開キャッシュが削除されます。同じDEPLOYMENT_ID値で正常なデプロイメントを再度実行すると、新しいデプロイメントとして扱われます。 GOVERNANCE_ADDRESS値は、インスタンスの事前デプロイ済ガバナンス契約アドレスです。GOVERNANCE_UUID値については、DA_ADMINロールに連絡してください。
.obp-da/.erc7201レジストリ・エントリにのみメタデータを書き込みます。次のコマンドを実行して、契約をデプロイします。DEPLOYMENT_ID=<deployment-id> \ GOVERNANCE_ADDRESS=<ida-contract-governance-address> \ GOVERNANCE_UUID=<customer-governance-uuid> \ TOKEN_NAME="Stablecoin" \ TOKEN_SYMBOL="STBL" \ TOKEN_DESCRIPTION="Stablecoin token proxy contract" \ ADMIN_USER_ID="platformadmin1" \ ADMIN_ORG_ID="org1" \ CONTRACT_METADATA_SMART_CONTRACT_ID="stablecoin" \ CONTRACT_METADATA_VERSION="1.0.0" \ CONTRACT_METADATA_DESCRIPTION="Stablecoin token proxy contract" \ CONTRACT_METADATA_AUTHOR="Oracle" \ CONTRACT_METADATA_TAGS='{"assetType":"stablecoin token"}' \ npx hardhat run scripts/deploy/stablecoin/deploy-stablecoin-erc-5982.ts --network obp-besuCONTRACT_METADATA_*変数は、スクリプトによってデプロイされるトークン・プロキシに適用されます。タグは、文字列値を持つJSONオブジェクトである必要があります。このコマンドは、契約を
INACTIVEモードでデプロイします。デプロイメント・インテントを発行し、そのインテントがGOVERNANCE_UUID値にアタッチされたポリシーに基づいて承認されると、デプロイメントは自動的にACTIVEとしてマークされます。 - デプロイメントが失敗した場合は、同じ
- 管理されたプロキシのデプロイメント・インテントを提案します。アップグレードの場合、ガバナンス承認は既存のプロキシと、レビューされた正確な新しい実装に関連付けられます。必要な承認が終わると、代理人は、住所および累積されたビジネス状態を保持しながら、承認済バージョンに移動できます。別の実装、失効したインテントまたは却下された提案には、新しいガバナンス決定が必要です。
デプロイメントでガバナンス・コンテキストが設定されたら、ガバナンス対象の各プロキシに対して1つのインテントを発行します。次のコマンドを実行して、デプロイメント・インテントを提案します。
GOVERNANCE_INTENT_MODE=obp-besu \ GOVERNANCE_ADDRESS=<governance-address> \ GOVERNANCE_UUID=<customer-uuid> \ DEPLOY_TARGETS_JSON='["<stablecoin-proxy>"]' \ DEPLOY_INTENT_MANIFEST=.obp-da/governance/deploy-intent.json \ npx hardhat run scripts/deploy/governance/propose-deploy-intent.ts --network obp-besu直接契約発行には
GOVERNANCE_INTENT_MODE = json-rpcを使用します。GOVERNANCE_INTENT_MODE = obp-besuを使用する場合、提案はRPCプロキシを介してUWaaSエンドポイントに送信されます。堆積が完了したら、提供されたPostmanコレクションを使用して、RPCプロキシ経由でcontractメソッドを呼び出すことができます。