Caricare un manifesto contratto nel registro con la riga di comando
È possibile utilizzare la riga di comando per convalidare e pubblicare i metadati di distribuzione da un progetto Hardhat selezionato ai servizi del registro dei contratti.
Il task Hardhat upload-contract-manifest pubblica i file manifest del contratto aggiornabili o immutabili del progetto nei servizi di registro configurati.
Eseguire il task dalla directory radice del progetto di contratto in package dopo una distribuzione riuscita. Il task legge i file manifesto di distribuzione dal progetto. Di seguito sono riportate le posizioni standard.
- Manifesto di OpenZeppelin:
.openzeppelin/unknown-<chain-id>.json - Manifesto ERC-7201:
.obp-da/.erc7201/deployedContracts-<chain-id>.json - File manifesto immutabile/di solidità:
.obp-da/.solc/deployedContracts-<chain-id>.json
OZ_MANIFEST_PATH sul percorso locale-progetto.
- Configurare gli endpoint del registro. Impostare le variabili dell'endpoint del registro per i tipi di file manifesto che si prevede di caricare. Utilizzare il meccanismo di variabile dell'ambiente sicuro della shell o il meccanismo di variabile Hardhat configurato del progetto; non eseguire il commit delle credenziali o degli endpoint privati nel controllo dell'origine. Ad esempio, un richiamo shell occasionale può fornire i valori al task, come mostrato nell'esempio seguente.
Per un ambiente Oracle Blockchain Platform, fornire anche le informazioni sulla catena di destinazione e il token di autorizzazione proxy RPC richiesto dalla configurazione del progetto.ERC7201_MANIFEST_UPLOAD_REGISTRY_ENDPOINT="https://registry.example/erc7201" \ SOLC_UPLOAD_REGISTRY_ENDPOINT="https://registry.example/solc" \ npx hardhat upload-contract-manifest --mode all
I valori degli endpoint sono una configurazione esplicita. Non presumere che un URL del registro possa essere derivato da un nome host di Oracle Blockchain Platform.BESU_CHAIN_ID="<chain-id>" \ BESU_RPX_PROXY_AUTH_TOKEN="<rpc-proxy-token>" \ ERC7201_MANIFEST_UPLOAD_REGISTRY_ENDPOINT="https://registry.example/erc7201" \ SOLC_UPLOAD_REGISTRY_ENDPOINT="https://registry.example/solc" \ npx hardhat upload-contract-manifest --mode all - Selezionare cosa caricare scegliendo una delle seguenti modalità.
Le modalità# Upload both applicable manifest types. npx hardhat upload-contract-manifest --mode all # Upload the OpenZeppelin and ERC-7201 manifest content. npx hardhat upload-contract-manifest --mode erc7201 # Upload immutable/Solidity contract manifest content only. npx hardhat upload-contract-manifest --mode immutablealleerc7201richiedono la variabileERC7201_MANIFEST_UPLOAD_REGISTRY_ENDPOINT. Le modalitàalleimmutablerichiedono la variabileSOLC_UPLOAD_REGISTRY_ENDPOINT. Per i progetti importati in pacchetti o i contratti di asset digitali generati da Blockchain App Builder, la modalità ERC-7201 è sufficiente. - Utilizzare l'opzione
--dry-runper convalidare i file manifest selezionati e caricare la configurazione senza pubblicare.npx hardhat upload-contract-manifest --mode all --dry-run - Dopo una esecuzione manuale riuscita, eseguire lo stesso comando senza l'opzione
--dry-runda pubblicare. Se il progetto lo supporta, impostare la variabileUPLOAD_CONTRACT_MANIFEST_TIMEOUT_MSper aumentare il timeout di caricamento e impostareUPLOAD_CONTRACT_MANIFEST_VERBOSE=trueper l'output di diagnostica aggiuntivo. Non includere segreti nei log dettagliati o nell'output del terminale condiviso.
Risoluzione dei problemi
| Condizione | Risoluzione |
|---|---|
| Task non trovata | Verificare che il plugin di caricamento file manifesto sia installato, importato dal file hardhat.config.ts e configurato con il task di caricamento.
|
| Manifesto richiesto mancante | Eseguire prima la distribuzione nell'ambiente selezionato, confermare l'ID catena e controllare la posizione del file manifesto prevista. Per un file manifesto OpenZeppelin non standard, impostare la variabile OZ_MANIFEST_PATH sul file locale-progetto corretto.
|
| Endpoint del registro mancante o non valido | Fornire un endpoint http o https per la modalità selezionata. Le modalità erc7201 e immutable utilizzano variabili endpoint diverse.
|
| Caricamento di Oracle Blockchain Platform non autorizzato | Verificare che l'ambiente Oracle Blockchain Platform selezionato e le variabili BESU_CHAIN_ID e BESU_RPX_PROXY_AUTH_TOKEN si riferiscano tutti allo stesso ambiente di destinazione.
|