Stablecoin-Vertrag bereitstellen und testen
Sie können den Vertrag mit der CLI oder mit der Microsoft Visual Studio Code-Erweiterung für Blockchain App Builder bereitstellen.
Aus Visual Studio Code bereitstellen
Gehen Sie folgendermaßen vor, um den Vertrag mit der Visual Studio Code-Erweiterung für Blockchain App Builder bereitzustellen.
- Extrahieren Sie die Archivdatei
Stablecoin.zip. - Importieren Sie den Vertrag
Stablecoinin die Blockchain App Builder-Erweiterung in Visual Studio Code. - Wählen Sie das importierte Projekt aus, und wählen Sie die Registerkarte Bereitstellen aus.
Weitere Informationen finden Sie unter Blockchain App Builder Extension for Visual Studio Code verwenden.
Über die Befehlszeile bereitstellen
Gehen Sie folgendermaßen vor, um den Vertrag über die Befehlszeile bereitzustellen.
- Extrahieren Sie die Archivdatei
Stablecoin.zip. - Führen Sie den folgenden Befehl durch, um Abhängigkeiten zu installieren.
npm install - Führen Sie die folgenden Befehle aus, um den Vertrag zu kompilieren.
npx hardhat clean npx hardhat compile - Konfigurieren Sie die folgenden Netzwerkvariablen.
Der folgende Text zeigt ein Beispiel für die variable Konfiguration.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..." - Stellen Sie den Vertrag bereit. Jedes Deployment erfordert die folgenden Variablen:
DEPLOYMENT_ID,GOVERNANCE_ADDRESSundGOVERNANCE_UUID.- Wenn ein Deployment nicht erfolgreich verläuft, führen Sie es erneut mit demselben
DEPLOYMENT_ID-Wert aus, der fortgesetzt werden soll. Nachdem das Deployment erfolgreich war, wird der Lebenslaufcache gelöscht. Wenn Sie ein erfolgreiches Deployment mit demselbenDEPLOYMENT_ID-Wert erneut ausführen, wird es als neues Deployment behandelt. - Der Wert
GOVERNANCE_ADDRESSist die vorab bereitgestellte Governance-Vertragsadresse für die Instanz. - Wenden Sie sich für den Wert
GOVERNANCE_UUIDan die RolleDA_ADMIN.
.obp-da/.erc7201. Führen Sie die folgenden Befehle aus, um den Vertrag bereitzustellen.
Die VariablenDEPLOYMENT_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_*gelten für den Tokenproxy, der vom Skript bereitgestellt wird. Tags müssen ein JSON-Objekt mit Zeichenfolgenwerten sein.Dieser Befehl stellt den Vertrag im
INACTIVE-Modus bereit. Nachdem Sie das Deployment-Intent weitergeleitet haben und das Intent basierend auf der Policy genehmigt wurde, die an den WertGOVERNANCE_UUIDangehängt ist, wird das Deployment automatisch alsACTIVEmarkiert. - Wenn ein Deployment nicht erfolgreich verläuft, führen Sie es erneut mit demselben
- Deployment-Intent für gesteuerte Proxys vorschlagen. Bei Upgrades ist die Governance-Genehmigung an den vorhandenen Proxy und die genaue neue Implementierung gebunden, die überprüft wurde. Nach den erforderlichen Genehmigungen kann der Stellvertreter zur genehmigten Version wechseln, wobei seine Adresse und der akkumulierte Geschäftsstatus beibehalten werden. Eine andere Implementierung, ein abgelaufenes Intent oder ein abgelehnter Vorschlag erfordert eine neue Governance-Entscheidung.
Nachdem das Deployment den Governance-Kontext festgelegt hat, leiten Sie ein Intent für jeden verwalteten Proxy weiter. Führen Sie den folgenden Befehl aus, um das Deployment-Intent vorzuschlagen.
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-besuVerwenden Sie
GOVERNANCE_INTENT_MODE = json-rpcfür die direkte Vertragsweiterleitung. Wenn SieGOVERNANCE_INTENT_MODE = obp-besuverwenden, wird der Vorschlag über den RPC-Proxy an den Endpunkt UWaaS weitergeleitet.Nach Abschluss des Depoyments können Sie mit der bereitgestellten Postman-Collection die Vertragsmethoden über den RPC-Proxy aufrufen.