CLI
Visión General
El CLI proporciona herramientas para crear, construir y desplegar proyectos utilizando herramientas e infraestructura de thirdweb. Mediante el CLI, puedes crear nuevos proyectos con el SDK configurado, construir, publicar y desplegar contratos inteligentes, generar tipos mientras desarrollas, subir archivos a IPFS, etc.
Código abierto
El CLI es de código abierto. Puede consultar el código fuente y contribuir a él en GitHub.
Instalación
Instala el paquete CLI globalmente para utilizar los comandos en cualquier parte del sistema.
Nota: Si no desea instalarlo globalmente, puede anteponer cada comando con npx
. es decir, npx thirdweb <command>
.
npm i -g @thirdweb-dev cli
yarn global add @thirdweb-dev cli
pnpm install -g @thirdweb-dev cli
Una vez instalado, puede ver la lista completa de comandos disponibles ejecutando:
thirdweb
Comandos disponibles
create
: Crea una aplicación web3 a partir de cualquiera de nuestras plantillas oficiales.install
: Añade los paquetes de thirdweb a tu proyecto existente.build
: Compilar contract y detectar las extensiones contract de thirdweb.generate
: Fetch contract ABIs para generar tipos y mejorar el rendimiento en el SDK.upload
: Subir cualquier archivo o directorio al almacenamiento descentralizado (IPFS).deploy
: Despliega tus contratos (o los de tu equipo) de forma segura en blockchains.publish
: Publica tu protocolo para que otros desarrolladores puedan desplegarlos y desbloquear SDKs, cuadros de mando y análisis.
Deploy
Despliega fácilmente cualquier contrato en cualquier cadena compatible con EVM, utilizando un único comando:
npx thirdweb deploy
Sin configuración, claves privadas codificadas, URL RPC ni scripts.
¿Por qué usar Deploy?
Ventajas de utilizar Deploy:
No necesita configuración ni instalación.
Mayor seguridad:
No es necesario exportar una clave privada. El despliegue se realiza desde la interfaz de usuario del panel de control desde el navegador, utilizando un monedero de navegador.
Compatibilidad con Safe, por lo que no es necesario compartir claves privadas con el equipo.
No es necesario configurar una URL RPC: ¡nosotros nos encargamos de todas las complejidades por ti!
Despliega utilizando una interfaz de usuario. Esto te permite establecer los argumentos del constructor en el momento del despliegue.
Carga y fija automáticamente los metadatos del contrato en IPFS.
Verifica automáticamente tu contrato en Sourcify.
Añade automáticamente el contrato al panel de control: ¡este paso no tiene gas! Esto significa que puedes gestionar e interactuar fácilmente con tu contrato.
No es necesario copiar la ABI del contrato al integrar su contrato inteligente en una aplicación web3.
¿Cómo funciona?
Al utilizar Deploy, los metadatos de tu contrato se cargan automáticamente en IPFS y se verifican, haciendo que tu contrato se pueda utilizar en cualquier aplicación web3 sin tener que copiar tu ABI de contrato.
Esto funciona:
Usando el comportamiento por defecto de solc (el compilador de solidity) - añadiendo los metadatos codificados del contrato al bytecode del contrato.
Subiendo los metadatos de los contratos a IPFS.
Codificación y extracción de los metadatos contractuales
Por defecto, al compilar cualquier contrato solidity, el compilador solc:
Calcula el hash IPFS del artefacto JSON de metadatos del contrato (que contiene información como el nombre del contrato, ABI, código fuente, comentarios y configuración del compilador).
Codifica el hash IPFS calculado utilizando la codificación CBOR.
Añade los bytes codificados al final del código de bytes compilado.
Esto significa que desde cualquier contrato desplegado, puedes
Obtener el bytecode del contrato utilizando la llamada RPC estándar
eth_getCode
.Decodificar los datos al final del bytecode utilizando un decodificador CBOR.
Extraer el hash IPFS de los datos decodificados.
Descargar los metadatos originales del contrato, que contienen el código fuente, la ABI, etc.
Dado que los hashes IPFS son inmutables, se garantiza que los metadatos codificados del contrato son correctos y no han sido modificados. Esto significa que todos los contratos son autoverificables por diseño y sin necesidad de terceros. Sin embargo, el compilador sólo calcula el hash IPFS y lo codifica, ¡no carga nada en IPFS!
Cargar metadatos de contratos en IPFS
Al utilizar Deploy:
Los metadatos de tu contrato se suben automáticamente a IPFS, lo que significa que podemos hacer uso del comportamiento por defecto de solc para desbloquear nuestros SDKs.
Su contrato se verifica automáticamente en Sourcify.
Esto facilita la creación de aplicaciones web3, utilizando nuestros SDKs, sin tener que copiar o actualizar la ABI del contrato. En su lugar, el ABI se recupera de los metadatos del contrato cargados en IPFS. Esto actúa como una fuente de verdad y, por lo tanto, siempre está actualizado.
Deploy: Primeros pasos
Utiliza el CLI para desplegar tus contratos directamente en cualquier cadena compatible con EVM utilizando el panel de control.
npx thirdweb deploy
Uso
Ejecutando este comando podrás:
Detectar el framework (Hardhat, Foundry o Truffle).
Compilar todos los contratos en el directorio actual utilizando la configuración del proyecto.
Seleccionar qué contrato(s) desea desplegar.
Cargar los metadatos de tu contrato en IPFS, asegurándote de que coinciden exactamente con el hash IPFS codificado en el bytecode compilado.
Detectar las extensiones de tu contrato.
Abrir el flujo de despliegue en el panel de control para que conectes un monedero, introduzcas los parámetros del contrato y selecciones una cadena en la que desplegarlo, ¡sin necesidad de codificar las claves privadas!
npx thirdweb [options]
Options
-p--path <string>
Trayectoria del proyecto
-c--clean
Borrar la memoria caché antes de construir
--dry-run
Ejecución en seco (sin publicar)
-d--debug
Mostrar registros de depuración
--ci
Integración continua
--dist-path <string>
Ruta a la carpeta dist donde se encuentra la aplicación basada en HTML
-n--name <string>
Nombre del contrato preconstruido o publicado (como nft-drop)
-f--file <string>
Filtro de expedientes de contrato que contienen este nombre de expediente
-cn--contract-name <string
Filtro de contratos que contienen este nombre de contrato
-cv--contract-version <string>
Versión del contrato publicada
--app
Despliegue de una aplicación web en un almacenamiento descentralizado
--contract
Desplegar un contrato inteligente en la blockchain
--dynamic
Despliegue de un contrato inteligente dinámico compuesto por extensiones de blockchain
Publish
Publica cualquier contrato utilizando el siguiente comando:
npx thirdweb publish
Introducción
Publicar tu contrato es la mejor manera de compartirlo con el mundo. Cuando publicas tu contrato, se vuelve compartible, verificable y desplegable por cualquiera.
¿Por qué publicar tu contrato?
Los contratos publicados pueden desplegarse en cualquier red EVM cuando se utiliza la fábrica predeterminada.
Cuando se despliega un contrato publicado, se obtienen SDK y cuadros de mando autogenerados que permiten gestionar el contrato y ayudan a crear fácilmente aplicaciones sobre él.
Todos los contratos publicados tienen una página de inicio. Esto permite a otros explorar las funciones y eventos de su contrato, y ver el código fuente.
El registro de contratos publicados es totalmente on-chain. Puedes construir tu reputación on-chain como desarrollador de contratos inteligentes.
Los mejores contratos publicados aparecen en la página Explorer, que es vista por más de 70.000 desarrolladores web3.
Publicar tu contrato es completamente gratis, nosotros cubrimos todos los gastos de gas.
Cómo publicar
Utiliza el CLI para publicar tus contratos directamente en cualquier cadena compatible con EVM mediante el panel de control:
npx thirdweb publish
Este comando:
Compila tu contrato inteligente.
Sube el código fuente del contrato (ABI) a IPFS.
Abre el flujo de publicación en el panel de control.
Options
-p--path <string>
Trayectoria del proyecto
-f--file <string>
Filtro de expedientes de contrato que contienen este nombre de expediente
-cn--contract-name <string>
Filtro de contratos que contienen este nombre de contrato
-c--clean
Borrar la memoria caché antes de construir
--dry-run
Ejecución en seco (sin publicar)
-d--debug
Mostrar registros de depuración
--ci
Modo de integración continua
Cómo publicar tu contrato
En tu navegador, sigue los pasos que se indican a continuación para publicar tu contrato:
Configurar los metadatos del contrato
Desde el panel de control, proporciona los metadatos para el contrato inteligente, incluyendo:
Name
Image
Description
README - Markdown es compatible. Qué hace tu contrato, casos de uso común y ejemplos son grandes cosas para incluir aquí.
Añadir una versión e informe de auditoría (opcional)
Utiliza el versionado semántico para publicar de forma incremental nuevas versiones de tu contrato inteligente; ideal para cuando quieres hacer cambios en tu contrato inteligente pero no quieres romper las integraciones existentes.
Cada versión de tu contrato inteligente se almacena en la cadena y puede ser desplegada por cualquiera. Opcionalmente puedes incluir notas de la versión, para describir los cambios que has hecho entre versiones.
También puedes vincular cada versión a un informe de auditoría. Puedes pegar un enlace o arrastrar y soltar un PDF. Nosotros generaremos un enlace IPFS para ti.
Elige cómo los usuarios desplegarán el contrato publicado
Seleccione el tipo de contrato para tu contrato publicado
Despliegue directo: Elige esta opción si tu contrato no sigue el patrón de contrato actualizable.
Esta opción puede utilizarse para cualquier contrato.
No hay requisitos para utilizar esta opción para publicar el contrato.
Los usuarios desplegarán el contrato completo: almacenamiento y lógica de implementación.
Desplegar vía Fábrica: Elige esta opción si deseas que los usuarios desplieguen proxies de tu contrato utilizando el contrato de fábrica predeterminado de thirdweb o utilizando su propia fábrica personalizada predesplegada.
Fábrica predeterminada: utiliza esta opción para utilizar la fábrica predeterminada de thirdweb si tu contrato sigue el patrón de contratos actualizables.
Fábrica personalizada - Utiliza esta opción para utilizar su propia fábrica personalizada predesplegada para crear proxies para sus usuarios.
Una vez seleccionado, haz clic en "Next" para pasar al tipo de contrato seleccionado.
Elija en qué red(es) publicar su contrato
Selecciona la(s) red(es) en la(s) que deseas publicar su contrato. Puedea seleccionar varias redes o cualquier EVM.
Si eliges publicar mediante despliegue directo, se te pedirá que selecciones la(s) red(es) en la(s) que deseas que los usuarios puedan desplegar tu contrato, a continuación, ha< clic en el botón "Next". Si opta por la publicación en fábrica, se te pedirá que seleccione la red o redes en las que desea que los usuarios puedan desplegar tu contrato cuando configures los "Ajustes de despliegue en fábrica".
Personalizar los parámetros del contrato
Ayuda a los usuarios que intentan desplegar tu contrato inteligente cambiando el aspecto de los parámetros de tu contrato. Se trata de campos que los usuarios deben introducir antes de desplegar el contrato. Cada campo corresponde a la variable asociada en el constructor del contrato.
Display name: Utilízalo para tener una versión más legible del nombre del parámetro. De lo contrario, el nombre del parámetro del contrato se mostrará tal cual.
Default value: Se rellenará previamente en el formulario de despliegue. Utilízalo para orientar a los usuarios sobre el valor que deben introducir. Si el parámetro es del tipo de datos, puede rellenar previamente la dirección de la cartera conectada del usuario estableciendo el valor predeterminado como
{{connected_wallet}}
.Description: Utiliza esta opción para aclarar cualquier confusión y explicar qué valor se espera de este parámetro.
Advanced: Marque esta opción si deseas ocultar este parámetro del formulario de despliegue. Esto es útil para parámetros que no requieren ser cambiados por el usuario. Esta opción sólo está disponible para parámetros que tienen un valor por defecto.
Publicar contrato
Por último, haz clic en el botón "Publish Contract" para publicar tu contrato inteligente en el registro de la cadena.
Para conocer las mejores prácticas y publicar tu contrato en Explore:
Cómo ser destacado
Poner tu contrato en la página Explore es la mejor manera de ponerlo delante de los desarrolladores de web3. Más de 70.000 constructores de web3 visitan esta página.
¿Quieres que tu contrato aparezca en la página Explore? Solicítalo aquí
Mejores prácticas
Los contratos publicados que siguen estas directrices tienen más posibilidades de aparecer en la página Explore. Esto mejora la experiencia de las personas que despliegan su contrato publicado.
El nombre y la descripción del contrato deben ser claros y concisos.
Añade una imagen a tu contrato.
Publica tu contrato desde tu cuenta pública, preferiblemente una que esté vinculada a un ENS. Actualiza el nombre, la descripción y la imagen de tu cuenta.
Redacte un README completo que informe a los usuarios de lo que hace tu contrato, cómo funciona y cómo desplegarlo.
Añade nombres para mostrar, valores por defecto y descripciones para los parámetros de tu contrato. Esto facilita a los usuarios el despliegue del contrato.
En el caso de contratos proxy y de fábrica, haz que esté disponible en tantas redes como sea posible.
Enlace al informe de auditoría de su contrato. Los contratos auditados tienen más posibilidades de ser destacados.
Si tiene alguna pregunta o necesitas ayuda para publicar tu contrato, contacta con nosotros. Nuestro equipo estará encantado de ayudarle.
Recursos adicionales
Si tienes alguna pregunta, únete a los más de 36.000 creadores de nuestra comunidad de Discord, o ponte en contacto directamente con el equipo para obtener más información sobre cómo empezar con thirdweb.
Y si quieres empezar a construir aplicaciones web3, empieza con las herramientas web3 y SDKs de thirdweb - ¡son gratis!