Implantar e Testar o Contrato de Stablecoin
Você pode implantar o contrato usando a CLI ou usando a extensão do Microsoft Visual Studio Code para o Blockchain App Builder.
Implantar a partir do Visual Studio Code
Para implantar o contrato usando a extensão do Visual Studio Code para o Blockchain App Builder, execute as etapas a seguir.
- Extraia o arquivo
Stablecoin.zip. - Importe o contrato
Stablecoinpara a extensão Blockchain App Builder no Visual Studio Code. - Selecione o projeto importado e, em seguida, a guia Implantar.
Para obter mais informações, consulte Usando a Extensão do Blockchain App Builder para o Visual Studio Code.
Implantar da Linha de Comando
Para implantar o contrato na linha de comando, execute as etapas a seguir.
- Extraia o arquivo
Stablecoin.zip. - Execute o comando a seguir para instalar dependências.
npm install - Execute os comandos a seguir para compilar o contrato.
npx hardhat clean npx hardhat compile - Configure as variáveis de rede a seguir.
O texto a seguir mostra um exemplo de configuração de variável.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..." - Implante o contrato. Cada implantação requer as seguintes variáveis:
DEPLOYMENT_ID,GOVERNANCE_ADDRESSeGOVERNANCE_UUID.- Se uma implantação falhar, execute-a novamente com o mesmo valor
DEPLOYMENT_IDa ser retomado. Depois que a implantação for bem-sucedida, o cache de retomada será excluído. Se você executar uma implantação bem-sucedida novamente com o mesmo valorDEPLOYMENT_ID, ela será tratada como uma nova implantação. - O valor
GOVERNANCE_ADDRESSé o endereço do contrato de governança pré-implantado para a instância. - Entre em contato com a atribuição
DA_ADMINpara o valorGOVERNANCE_UUID.
.obp-da/.erc7201somente para o proxy de token. Execute os comandos a seguir para implantar o contrato.
As variáveisDEPLOYMENT_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_*se aplicam ao proxy de token implantado pelo script. As tags devem ser um objeto JSON com valores de string.Esse comando implanta o contrato no modo
INACTIVE. Depois que você submeter a intenção de implantação e a intenção for aprovada com base na política anexada ao valorGOVERNANCE_UUID, a implantação será marcada comoACTIVEautomaticamente. - Se uma implantação falhar, execute-a novamente com o mesmo valor
- Propor uma intenção de implantação para proxies governados. Para atualizações, a aprovação da governança está vinculada ao proxy existente e à nova implementação exata que foi revisada. Após as aprovações necessárias, o representante pode passar para a versão aprovada, mantendo seu endereço e o estado comercial acumulado. Uma implementação diferente, uma intenção expirada ou uma proposta rejeitada requer uma nova decisão de governança.
Após a implantação definir o contexto de governança, envie uma intenção para cada proxy governado. Execute o comando a seguir para propor a intenção de implantação.
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-besuUse
GOVERNANCE_INTENT_MODE = json-rpcpara envio direto de contrato. Se você usarGOVERNANCE_INTENT_MODE = obp-besu, a proposta será enviada ao ponto final UWaaS por meio do proxy RPC.Depois que a depoyment for concluída, você poderá usar a coleção Postman fornecida para chamar os métodos de contrato por meio do proxy RPC.