Carga de un manifiesto de contrato en el registro con la línea de comandos
Puede utilizar la línea de comandos para validar y publicar metadatos de despliegue de un proyecto de Hardhat seleccionado en servicios de registro de contratos.
La tarea upload-contract-manifest Hardhat publica los manifiestos de contrato actualizables o inmutables del proyecto en servicios de registro configurados.
Ejecute la tarea desde el directorio raíz del proyecto de contrato empaquetado después de un despliegue correcto. La tarea lee los archivos de manifiesto de despliegue del proyecto. Los siguientes archivos son las ubicaciones estándar:
- manifiesto de OpenZeppelin:
.openzeppelin/unknown-<chain-id>.json - manifiesto ERC-7201:
.obp-da/.erc7201/deployedContracts-<chain-id>.json - Manifiesto inmutable/de solidaridad:
.obp-da/.solc/deployedContracts-<chain-id>.json
OZ_MANIFEST_PATH en su ruta local de proyecto.
- Configure los puntos finales del registro. Defina las variables de punto final de registro para los tipos de manifiesto que desea cargar. Utilice el mecanismo de variable de entorno seguro del shell o el mecanismo de variable de Hardhat configurado del proyecto; no confirme credenciales ni puntos finales privados para el control de origen. Por ejemplo, una llamada de shell de un solo uso puede proporcionar los valores para la tarea, como se muestra en el siguiente ejemplo.
Para un entorno de Oracle Blockchain Platform, también proporcione la información de la cadena de destino y el token de autorización de proxy RPC que necesita la configuración del proyecto.ERC7201_MANIFEST_UPLOAD_REGISTRY_ENDPOINT="https://registry.example/erc7201" \ SOLC_UPLOAD_REGISTRY_ENDPOINT="https://registry.example/solc" \ npx hardhat upload-contract-manifest --mode all
Los valores de punto final son una configuración explícita. No suponga que una URL de registro se puede derivar de un nombre de host de 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 - Seleccione qué desea cargar seleccionando uno de los siguientes modos.
Los modos# 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 immutableallyerc7201necesitan la variableERC7201_MANIFEST_UPLOAD_REGISTRY_ENDPOINT. Los modosallyimmutablenecesitan la variableSOLC_UPLOAD_REGISTRY_ENDPOINT. Para proyectos importados empaquetados o contratos de activos digitales generados por Blockchain App Builder, el modo ERC-7201 es suficiente. - Utilice la opción
--dry-runpara validar los archivos de manifiesto seleccionados y cargar la configuración sin publicar.npx hardhat upload-contract-manifest --mode all --dry-run - Después de una ejecución simulada correcta, ejecute el mismo comando sin la opción
--dry-runpara publicar. Si el proyecto lo soporta, defina la variableUPLOAD_CONTRACT_MANIFEST_TIMEOUT_MSpara aumentar el timeout de carga y definaUPLOAD_CONTRACT_MANIFEST_VERBOSE=truepara una salida de diagnóstico adicional. No incluya secretos en los logs detallados ni en la salida de terminal compartida.
Solución de problemas
| Condición | Resolución |
|---|---|
| No se ha encontrado la Tarea | Confirme que el plugin de carga de manifiesto esté instalado, importado por el archivo hardhat.config.ts y configurado con la tarea de carga.
|
| Falta el manifiesto requerido | Desplegar en el entorno seleccionado primero, confirmar el ID de cadena y comprobar la ubicación de manifiesto esperada. Para un manifiesto OpenZeppelin no estándar, establezca la variable OZ_MANIFEST_PATH en el archivo local de proyecto correcto.
|
| Falta el punto final de registro o no es válido | Proporcione un punto final http o https para el modo seleccionado. Los modos erc7201 y immutable utilizan diferentes variables de punto final.
|
| La carga de Oracle Blockchain Platform no está autorizada | Verifique que el entorno de Oracle Blockchain Platform seleccionado y las variables BESU_CHAIN_ID y BESU_RPX_PROXY_AUTH_TOKEN son todas para el mismo entorno de destino.
|