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.

  1. Extrahieren Sie die Archivdatei Stablecoin.zip.
  2. Importieren Sie den Vertrag Stablecoin in die Blockchain App Builder-Erweiterung in Visual Studio Code.
  3. 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.

  1. Extrahieren Sie die Archivdatei Stablecoin.zip.
  2. Führen Sie den folgenden Befehl durch, um Abhängigkeiten zu installieren.
    npm install
  3. Führen Sie die folgenden Befehle aus, um den Vertrag zu kompilieren.
    npx hardhat clean
    npx hardhat compile
  4. Konfigurieren Sie die folgenden Netzwerkvariablen.
    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}"
    
    Der folgende Text zeigt ein Beispiel für die variable Konfiguration.
    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. Stellen Sie den Vertrag bereit. Jedes Deployment erfordert die folgenden Variablen: DEPLOYMENT_ID, GOVERNANCE_ADDRESS und GOVERNANCE_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 demselben DEPLOYMENT_ID-Wert erneut ausführen, wird es als neues Deployment behandelt.
    • Der Wert GOVERNANCE_ADDRESS ist die vorab bereitgestellte Governance-Vertragsadresse für die Instanz.
    • Wenden Sie sich für den Wert GOVERNANCE_UUID an die Rolle DA_ADMIN.
    Beim Deployment können Sie Tokenproxymetadaten mit Umgebungsvariablen übergeben. Das Deployment schreibt Metadaten nur für den Tokenproxy in den Registry-Eintrag .obp-da/.erc7201. Führen Sie die folgenden Befehle aus, um den Vertrag bereitzustellen.
    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
    
    Die Variablen CONTRACT_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 Wert GOVERNANCE_UUID angehängt ist, wird das Deployment automatisch als ACTIVE markiert.

  6. 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-besu
    

    Verwenden Sie GOVERNANCE_INTENT_MODE = json-rpc für die direkte Vertragsweiterleitung. Wenn Sie GOVERNANCE_INTENT_MODE = obp-besu verwenden, 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.