複合トークン・フレームワーク契約のデプロイおよびテスト
CLIを使用するか、ブロックチェーン・アプリケーション・ビルダーのMicrosoft Visual Studio Code拡張機能を使用して、契約をデプロイできます。
Visual Studio Codeからのデプロイ
ブロックチェーン・アプリケーション・ビルダーのVisual Studio Code拡張機能を使用して契約をデプロイするには、次のステップを実行します。
art-collection-loyalty-point.zipアーカイブ・ファイルを抽出します。Art-Collection契約をVisual Studio CodeのBlockchain App Builder拡張にインポートします。- インポートしたプロジェクトを選択し、「デプロイ」タブを選択します。
詳細は、Visual Studio Code用のブロックチェーン・アプリケーション・ビルダー拡張機能の使用を参照してください。
コマンドラインからの配置
コマンドラインから契約をデプロイするには、次のステップを実行します。
art-collection-loyalty-point.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":"0xfba9bd4554d3cf731c85316b5b5cf38fcd2fc72b","walletId":"0xfba9bd4554d3cf731c85316b5b5cf38fcd2fc72b"}]' 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=<governance-contract-address> \ GOVERNANCE_UUID=<governance-uuid> \ TOKEN_NAME="ArtCollectionLoyaltyToken" \ TOKEN_DESCRIPTION="Art collection loyalty point token proxy contract" \ TOKEN_URI="https://token-cdn-domain/{id}.json" \ ADMIN_USER_ID="platformadmin1" \ ADMIN_ORG_ID="org1" \ CONTRACT_METADATA_SMART_CONTRACT_ID="artCollectionLoyaltyToken" \ CONTRACT_METADATA_VERSION="1.0.0" \ CONTRACT_METADATA_DESCRIPTION="Art collection loyalty point token proxy contract" \ CONTRACT_METADATA_AUTHOR="Oracle" \ CONTRACT_METADATA_TAGS='{"assetType":"art-loyalty token"}' \ npx hardhat run scripts/deploy/art-loyalty/deploy-art-loyalty.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='["<artloyalty-proxy>"]' \ DEPLOY_INTENT_MANIFEST=.obp-da/governance/deploy-intent.json \ npx hardhat run scripts/deploy/art-loyalty/governance/propose-deploy-intent.ts --network obp-besu直接契約発行には
GOVERNANCE_INTENT_MODE = json-rpcを使用します。GOVERNANCE_INTENT_MODE = obp-besuを使用する場合、提案はRPCプロキシを介してUWaaSエンドポイントに送信されます。Depoymentが完了した後、提供されたPostmanコレクションを使用して、RPCプロキシを介してcontractメソッドを呼び出すことができます。