部署和测试 Stablecoin 合同
您可以使用 CLI 或使用适用于 Blockchain App Builder 的 Microsoft Visual Studio Code 扩展来部署合同。
从 Visual Studio Code 部署
要使用 Visual Studio Code 扩展为 Blockchain App Builder 部署合同,请完成以下步骤。
- 提取
Stablecoin.zip归档文件。 - 将
Stablecoin合同导入 Visual Studio Code 中的 Blockchain App Builder 扩展。 - 选择导入的项目,然后选择部署选项卡。
有关更多信息,请参见 Using the Blockchain App Builder Extension for 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值是实例的预部署监管合同地址。- 请与
DA_ADMIN角色联系以获取GOVERNANCE_UUID值。
.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 代理调用合同方法。