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.
- Extrayez le fichier d'archive
Stablecoin.zip. - Importez le contrat
Stablecoindans l'extension Blockchain App Builder dans Visual Studio Code. - 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 :
- Extrayez le fichier d'archive
Stablecoin.zip. - Exécutez la commande suivante pour installer les dépendances.
npm install - Exécutez les commandes suivantes pour compiler le contrat.
npx hardhat clean npx hardhat compile - Configurez les variables réseau suivantes.
Le texte suivant présente un exemple de configuration de variable.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..." - Déployer le contrat Chaque déploiement requiert les variables suivantes :
DEPLOYMENT_ID,GOVERNANCE_ADDRESSetGOVERNANCE_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 valeurDEPLOYMENT_ID, il est traité comme un nouveau déploiement. - La valeur
GOVERNANCE_ADDRESSest l'adresse de contrat de gouvernance pré-déployée pour l'instance. - Contactez le rôle
DA_ADMINpour la valeurGOVERNANCE_UUID.
.obp-da/.erc7201pour le proxy de jeton uniquement. Exécutez les commandes suivantes pour déployer le contrat.
Les variablesDEPLOYMENT_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_*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 valeurGOVERNANCE_UUID, le déploiement est automatiquement marqué commeACTIVE. - Si un déploiement échoue, exécutez-le à nouveau avec la même valeur
- 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-besuUtilisez
GOVERNANCE_INTENT_MODE = json-rpcpour soumettre un contrat direct. Si vous utilisezGOVERNANCE_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.