Implantar e Testar o Contrato de Estrutura de Token Combinado

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 art-collection-loyalty-point.zip.
  2. Importe o contrato Art-Collection 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 art-collection-loyalty-point.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":"0xfba9bd4554d3cf731c85316b5b5cf38fcd2fc72b","walletId":"0xfba9bd4554d3cf731c85316b5b5cf38fcd2fc72b"}]'
    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 para retomar. 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=<governance-contract-address> \
    GOVERNANCE_UUID=<governance-uuid> \
    TOKEN_NAME="ArtCollectionLoyaltyToken" \
    TOKEN_DESCRIPTION="Art collection loyalty point token proxy contract" \
    TOKEN_URI="https://token-cdn-domain/{id}.json" \
    ADMIN_USER_ID="platformadmin1" \
    ADMIN_ORG_ID="org1" \
    CONTRACT_METADATA_SMART_CONTRACT_ID="artCollectionLoyaltyToken" \
    CONTRACT_METADATA_VERSION="1.0.0" \
    CONTRACT_METADATA_DESCRIPTION="Art collection loyalty point token proxy contract" \
    CONTRACT_METADATA_AUTHOR="Oracle" \
    CONTRACT_METADATA_TAGS='{"assetType":"art-loyalty token"}' \
    npx hardhat run scripts/deploy/art-loyalty/deploy-art-loyalty.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. 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='["<artloyalty-proxy>"]' \
    DEPLOY_INTENT_MANIFEST=.obp-da/governance/deploy-intent.json \
    npx hardhat run scripts/deploy/art-loyalty/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.