Despliegue y prueba del contrato de Stablecoin

Puede desplegar el contrato mediante la CLI o mediante la extensión de código de Microsoft Visual Studio para Blockchain App Builder.

Desplegar desde Visual Studio Code

Para desplegar el contrato mediante la extensión de Visual Studio Code para Blockchain App Builder, realice los siguientes pasos.

  1. Extraiga el archivo de almacenamiento Stablecoin.zip.
  2. Importe el contrato Stablecoin a la extensión Blockchain App Builder en Visual Studio Code.
  3. Seleccione el proyecto importado y, a continuación, seleccione el separador Desplegar.

Para obtener más información, consulte Uso de la extensión de Blockchain App Builder para Visual Studio Code.

Despliegue desde la línea de comandos

Para desplegar el contrato desde la línea de comandos, complete los pasos siguientes.

  1. Extraiga el archivo de almacenamiento Stablecoin.zip.
  2. Ejecute el siguiente comando para instalar dependencias.
    npm install
  3. Ejecute los siguientes comandos para compilar el contrato.
    npx hardhat clean
    npx hardhat compile
  4. Configure las siguientes variables de red.
    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}"
    
    El siguiente texto muestra un ejemplo de configuración de variables.
    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. Despliegue el contrato. Cada despliegue necesita las siguientes variables: DEPLOYMENT_ID, GOVERNANCE_ADDRESS y GOVERNANCE_UUID.
    • Si falla un despliegue, vuelva a ejecutarlo con el mismo valor DEPLOYMENT_ID para reanudar. Una vez que el despliegue se realiza correctamente, se suprime la caché de reanudación. Si vuelve a ejecutar un despliegue correcto con el mismo valor DEPLOYMENT_ID, se trata como un nuevo despliegue.
    • El valor GOVERNANCE_ADDRESS es la dirección de contrato de gobernanza desplegada previamente para la instancia.
    • Póngase en contacto con el rol DA_ADMIN para obtener el valor GOVERNANCE_UUID.
    Puede transferir metadatos de proxy de token con variables de entorno al realizar el despliegue. El despliegue escribe metadatos en la entrada de registro .obp-da/.erc7201 solo para el proxy de token. Ejecute los siguientes comandos para desplegar el 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
    
    Las variables CONTRACT_METADATA_* se aplican al proxy de token que despliega el script. Las etiquetas deben ser un objeto JSON con valores de cadena.

    Este comando despliega el contrato en modo INACTIVE. Después de enviar la intención de despliegue y de aprobar la intención según la política asociada al valor GOVERNANCE_UUID, el despliegue se marca como ACTIVE automáticamente.

  6. Proponer una intención de despliegue para los proxies controlados. Para las actualizaciones, la aprobación de gobernanza está vinculada al proxy existente y a la nueva implementación exacta que se revisó. Después de las aprobaciones necesarias, el intermediario puede pasar a la versión aprobada manteniendo su dirección y estado de negocio acumulado. Una implementación diferente, una intención caducada o una propuesta rechazada requieren una nueva decisión de gobernanza.

    Después de que el despliegue haya definido el contexto de gobernanza, envíe una intención por cada proxy controlado. Ejecute el siguiente comando para proponer la intención de despliegue.

    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 el envío directo de contratos. Si utiliza GOVERNANCE_INTENT_MODE = obp-besu, la propuesta se envía al punto final UWaaS mediante el proxy RPC.

    Una vez finalizado el depósito, puede utilizar la recopilación Postman proporcionada para llamar a los métodos de contrato mediante el proxy RPC.