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.

  1. Extraia o arquivo Stablecoin.zip.
  2. Importe o contrato Stablecoin para a extensão Blockchain App Builder no Visual Studio Code.
  3. 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.

  1. Extraia o arquivo Stablecoin.zip.
  2. Execute o comando a seguir para instalar dependências.
    npm install
  3. Execute os comandos a seguir para compilar o contrato.
    npx hardhat clean
    npx hardhat compile
  4. Configure as variáveis de rede a seguir.
    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}"
    
    O texto a seguir mostra um exemplo de configuração de variável.
    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..."
    
  5. Implante o contrato. Cada implantação requer as seguintes variáveis: DEPLOYMENT_ID, GOVERNANCE_ADDRESS e GOVERNANCE_UUID.
    • Se uma implantação falhar, execute-a novamente com o mesmo valor DEPLOYMENT_ID a 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 valor DEPLOYMENT_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_ADMIN para o valor GOVERNANCE_UUID.
    Você pode transmitir metadados de proxy de token com variáveis de ambiente ao implantar. A implantação grava metadados na entrada de registro .obp-da/.erc7201 somente para o proxy de token. Execute os comandos a seguir para implantar o contrato.
    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-besu
    
    As variáveis CONTRACT_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 valor GOVERNANCE_UUID, a implantação será marcada como ACTIVE automaticamente.

  6. 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-besu
    

    Use GOVERNANCE_INTENT_MODE = json-rpc para envio direto de contrato. Se você usar GOVERNANCE_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.