Déployer et tester le contrat Stablecoin

Vous pouvez déployer le contrat à l'aide de l'interface de ligne de commande ou de l'extension Microsoft Visual Studio Code pour Blockchain App Builder.

Déployer à partir du code Visual Studio

Pour déployer le contrat à l'aide de l'extension Visual Studio Code pour Blockchain App Builder, procédez comme suit.

  1. Extrayez le fichier d'archive Stablecoin.zip.
  2. Importez le contrat Stablecoin dans l'extension Blockchain App Builder dans Visual Studio Code.
  3. Sélectionnez le projet importé, puis sélectionnez l'onglet Déployer.

Pour plus d'informations, reportez-vous à Utilisation de l'extension Blockchain App Builder pour Visual Studio Code.

Déployer à partir de la ligne de commande

Pour déployer le contrat à partir de la ligne de commande, procédez comme suit :

  1. Extrayez le fichier d'archive Stablecoin.zip.
  2. Exécutez la commande suivante pour installer les dépendances.
    npm install
  3. Exécutez les commandes suivantes pour compiler le contrat.
    npx hardhat clean
    npx hardhat compile
  4. Configurez les variables réseau suivantes.
    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}"
    
    Le texte suivant présente un exemple de configuration de variable.
    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. Déployer le contrat Chaque déploiement requiert les variables suivantes : DEPLOYMENT_ID, GOVERNANCE_ADDRESS et GOVERNANCE_UUID.
    • Si un déploiement échoue, exécutez-le à nouveau avec la même valeur DEPLOYMENT_ID à reprendre. Une fois le déploiement réussi, le cache de reprise est supprimé. Si vous exécutez à nouveau un déploiement réussi avec la même valeur DEPLOYMENT_ID, il est traité comme un nouveau déploiement.
    • La valeur GOVERNANCE_ADDRESS est l'adresse de contrat de gouvernance pré-déployée pour l'instance.
    • Contactez le rôle DA_ADMIN pour la valeur GOVERNANCE_UUID.
    Vous pouvez transmettre des métadonnées de proxy de jeton avec des variables d'environnement lors du déploiement. Le déploiement écrit les métadonnées dans l'entrée de registre .obp-da/.erc7201 pour le proxy de jeton uniquement. Exécutez les commandes suivantes pour déployer le contrat.
    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
    
    Les variables CONTRACT_METADATA_* s'appliquent au proxy de jeton déployé par le script. Les balises doivent être un objet JSON avec des valeurs de chaîne.

    Cette commande déploie le contrat en mode INACTIVE. Une fois que vous avez soumis l'intention de déploiement et que celle-ci est approuvée en fonction de la stratégie attachée à la valeur GOVERNANCE_UUID, le déploiement est automatiquement marqué comme ACTIVE.

  6. Proposez une intention de déploiement pour les proxies régis. Pour les mises à niveau, l'approbation de la gouvernance est liée au proxy existant et à la nouvelle implémentation exacte qui a été examinée. Après les approbations requises, le mandataire peut passer à la version approuvée tout en conservant son adresse et son état fonctionnel cumulé. Une mise en œuvre différente, une intention expirée ou une proposition rejetée nécessite une nouvelle décision de gouvernance.

    Une fois que le déploiement a défini le contexte de gouvernance, soumettez une intention pour chaque proxy régi. Exécutez la commande suivante pour proposer l'intention de déploiement.

    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
    

    Utilisez GOVERNANCE_INTENT_MODE = json-rpc pour soumettre un contrat direct. Si vous utilisez GOVERNANCE_INTENT_MODE = obp-besu, la proposition est soumise à l'adresse UWaaS via le proxy RPC.

    Une fois le dépoyage terminé, vous pouvez utiliser la collection Postman fournie pour appeler les méthodes contractuelles via le proxy RPC.