Distribuire e sottoporre a test il contratto Stablecoin
È possibile distribuire il contratto utilizzando l'interfaccia CLI o utilizzando l'estensione Microsoft Visual Studio Code per Blockchain App Builder.
Distribuisci da Visual Studio Code
Per distribuire il contratto utilizzando l'estensione Visual Studio Code per Blockchain App Builder, effettuare le operazioni riportate di seguito.
- Estrarre il file dell'archivio
Stablecoin.zip. - Importare il contratto
Stablecoinnell'estensione Blockchain App Builder in Visual Studio Code. - Selezionare il progetto importato, quindi selezionare la scheda Distribuisci.
Per ulteriori informazioni, vedere Uso dell'estensione App Builder Blockchain per Visual Studio Code.
Distribuisci dalla riga di comando
Per distribuire il contratto dalla riga di comando, effettuare le operazioni riportate di seguito.
- Estrarre il file dell'archivio
Stablecoin.zip. - Eseguire il comando seguente per installare le dipendenze.
npm install - Eseguire i comandi seguenti per compilare il contratto.
npx hardhat clean npx hardhat compile - Configurare le variabili di rete indicate di seguito.
Il testo seguente mostra un esempio di configurazione delle variabili.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..." - Distribuire il contratto. Ogni distribuzione richiede le seguenti variabili:
DEPLOYMENT_ID,GOVERNANCE_ADDRESSeGOVERNANCE_UUID.- Se una distribuzione non riesce, eseguirla di nuovo con lo stesso valore
DEPLOYMENT_IDda riprendere. Una volta completata la distribuzione, la cache di ripresa viene eliminata. Se si esegue di nuovo una distribuzione riuscita con lo stesso valoreDEPLOYMENT_ID, questa viene considerata come una nuova distribuzione. - Il valore
GOVERNANCE_ADDRESSè l'indirizzo del contratto di governance predistribuito per l'istanza. - Contattare il ruolo
DA_ADMINper il valoreGOVERNANCE_UUID.
.obp-da/.erc7201solo per il proxy token. Eseguire i comandi seguenti per distribuire il contratto.
Le variabiliDEPLOYMENT_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_*si applicano al proxy del token distribuito dallo script. Le tag devono essere un oggetto JSON con valori di stringa.Questo comando distribuisce il contratto in modalità
INACTIVE. Dopo aver sottomesso l'intento di distribuzione e l'intento viene approvato in base al criterio associato al valoreGOVERNANCE_UUID, la distribuzione viene contrassegnata automaticamente comeACTIVE. - Se una distribuzione non riesce, eseguirla di nuovo con lo stesso valore
- Proporre un intento di distribuzione per proxy governati. Per gli aggiornamenti, l'approvazione della governance è legata al proxy esistente e alla nuova implementazione rivista. Dopo le approvazioni richieste, il proxy può passare alla versione approvata conservando l'indirizzo e lo stato aziendale accumulato. Un'implementazione diversa, un intento scaduto o una proposta rifiutata richiedono una nuova decisione di governance.
Dopo che la distribuzione ha impostato il contesto di governance, sottomettere un intento per ogni proxy disciplinato. Eseguire il comando seguente per proporre l'intento di distribuzione.
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-besuUtilizzare
GOVERNANCE_INTENT_MODE = json-rpcper la sottomissione diretta del contratto. Se si utilizzaGOVERNANCE_INTENT_MODE = obp-besu, la proposta viene inviata all'endpoint UWaaS tramite il proxy RPC.Al termine dell'eliminazione, è possibile utilizzare la raccolta Postman fornita per richiamare i metodi di contratto tramite il proxy RPC.