部署並測試穩定的合約
您可以使用 CLI 或使用適用於 Blockchain App Builder 的 Microsoft Visual Studio Code 擴充功能來部署合約。
從 Visual Studio 程式碼部署
若要使用區塊鏈 App 產生器的 Visual Studio 程式碼擴充功能部署合約,請完成下列步驟。
- 擷取
Stablecoin.zip封存檔案。 - 將
Stablecoin合約匯入 Visual Studio Code 中的 Blockchain App Builder 擴充功能。 - 選取匯入的專案,然後選取部署頁籤。
如需詳細資訊,請參閱使用 Visual Studio 程式碼的區塊鏈 App 產生器擴充功能。
從命令行部署
若要從命令行部署合約,請完成下列步驟。
- 擷取
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。 - 如果部署失敗,請使用相同的
- 提出受管理代理主機的部署意向。若為升級,治理核准會繫結至現有的代理主機,以及經過複查的確切新實行。在必要的核准後,代理可以移至已核准的版本,同時保留其地址和累計的業務狀態。不同的導入、到期目的或被拒絕的提案需要新的治理決策。
部署設定治理相關資訊環境之後,請為每個受管理的代理主機送出一個意圖。執行下列命令以提議部署目的。
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 代理主機呼叫合約方法。