部署與測試債券市集合約
您可以使用 CLI 或使用適用於 Blockchain App Builder 的 Microsoft Visual Studio Code 擴充功能來部署合約。
從 Visual Studio 程式碼部署
若要使用區塊鏈 App 產生器的 Visual Studio 程式碼擴充功能部署合約,請完成下列步驟。
- 擷取
BondMarketplace.zip封存檔案。 - 將
BondMarketplace合約匯入 Visual Studio Code 中的 Blockchain App Builder 擴充功能。 - 選取匯入的專案,然後選取部署頁籤。
如需詳細資訊,請參閱使用 Visual Studio 程式碼的區塊鏈 App 產生器擴充功能。
從命令行部署
若要從命令行部署合約,請完成下列步驟。
- 擷取
BondMarketplace.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.parcp1.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.parcp1.example.com:443/v1/besu/transaction npx hardhat vars set WALLET_SERVICE_ENABLED true npx hardhat vars set WALLET_SERVICE_ACCOUNTS '[{"address":"0xa6f04ccd460ca130e52d4afe6a8ee3c8d47f5060","walletId":"0xa6f04ccd460ca130e52d4afe6a8ee3c8d47f5060"}]' 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="Bond" \ TOKEN_DESCRIPTION="Bond token proxy contract" \ TOKEN_URI="https://token-cdn-domain/{id}.json" \ ADMIN_USER_ID="platformadmin1" \ ADMIN_ORG_ID="org1" \ CONTRACT_METADATA_SMART_CONTRACT_ID="bond" \ CONTRACT_METADATA_VERSION="1.0.0" \ CONTRACT_METADATA_DESCRIPTION="Bond token proxy contract" \ CONTRACT_METADATA_AUTHOR="Oracle" \ CONTRACT_METADATA_TAGS='{"assetType":"bond token"}' \ npx hardhat run scripts/deploy/bond/deploy-bond.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='["<bond-proxy>"]' \ DEPLOY_INTENT_MANIFEST=.obp-da/governance/deploy-intent.json \ npx hardhat run scripts/deploy/bond/governance/propose-deploy-intent.ts --network obp-besu使用
GOVERNANCE_INTENT_MODE = json-rpc來直接提交合約。如果您使用GOVERNANCE_INTENT_MODE = obp-besu,提案會透過 RPC 代理主機提交至 UWaaS 端點。拆卸完成後,您可以使用提供的 Postman 集合,透過 RPC 代理主機呼叫合約方法。