Instalar | Libro de usuario | Documentos para desarrolladores | Caja de documentos
Foundry es un conjunto de herramientas modular, portátil y increíblemente rápido para el desarrollo de aplicaciones Ethereum escrito en Rust.
La fundición consta de:
Forge : marco de pruebas de Ethereum (como Truffle, Hardhat y DappTools).
Elenco : navaja suiza para interactuar con contratos inteligentes EVM, enviar transacciones y obtener datos en cadena.
Anvil : Nodo local de Ethereum, similar a Ganache, Hardhat Network.
Cincel : Solidez rápida, utilitaria y prolija REPL.
¿Necesita ayuda para empezar a utilizar Foundry? Leer el ? ¡Libro de fundición (WIP)!
Consulte la guía de instalación en el libro.
Si tiene algún problema durante la instalación, consulte Obtener ayuda y las preguntas frecuentes.
Canal de compilación rápido y flexible
Detección e instalación automática de la versión del compilador Solidity
Compilación incremental y almacenamiento en caché : solo se vuelven a compilar los archivos modificados
compilación paralela
Compatibilidad con estructuras de directorios no estándar (por ejemplo, repositorios Hardhat)
Las pruebas están escritas en Solidity (como en DappTools)
Pruebas rápidas de fuzz con reducción de entradas e impresión de contraejemplos
Modo de bifurcación RPC remoto rápido , aprovechando la infraestructura asíncrona de Rust como Tokio
Registro de depuración flexible
Estilo DappTools, utilizando los registros emitidos de DsTest
Estilo casco, usando el popular contrato console.sol
Portátil (5-10 MB) y fácil de instalar sin necesidad de Nix ni ningún otro administrador de paquetes
CI rápida con la acción Foundry GitHub.
Forge es bastante rápido tanto en la compilación (aprovechando ethers-solc) como en las pruebas.
Vea los puntos de referencia a continuación. Se pueden encontrar más puntos de referencia en la publicación del anuncio de la versión 0.2.0 y en el repositorio de Convex Shutdown Simulation.
Puntos de referencia de prueba
Proyecto | Fragua | Herramientas Dapp | Aceleración |
---|---|---|---|
transmisiones11/solmate | 2,8s | 6m34s | 140x |
laboratorios-reflex/geb | 0,4 s | 23 | 57,5x |
Rari-Capital/bóvedas | 0,28s | 6,5s | 23x |
Nota: En los puntos de referencia anteriores, siempre se omitió la compilación.
Puntos de referencia de compilación
Conclusión: la compilación de Forge es consistentemente más rápida en un factor de 1,7 a 11,3 veces, dependiendo de la cantidad de almacenamiento en caché involucrado.
Cast es una navaja suiza para interactuar con aplicaciones Ethereum desde la línea de comandos.
Puede encontrar más documentación en el paquete de conversión.
foundry.toml
Foundry está diseñado para ser muy configurable. Puede configurar Foundry usando un archivo llamado foundry.toml
en la raíz de su proyecto o en cualquier otro directorio principal. Consulte el paquete de configuración para conocer todas las opciones disponibles.
La configuración puede tener espacios de nombres arbitrarios por perfiles. El perfil predeterminado se denomina default
(consulte "Perfil predeterminado").
Puede seleccionar otro perfil utilizando la variable de entorno FOUNDRY_PROFILE
. También puede anular partes de su configuración utilizando variables de entorno con prefijo FOUNDRY_
o DAPP_
, como FOUNDRY_SRC
.
forge init
crea un archivo foundry.toml
básico y extensible.
Para ver su configuración actual, ejecute forge config
. Para ver solo las opciones básicas (tal y como están configuradas con forge init
), ejecute forge config --basic
. Esto se puede utilizar para crear un nuevo archivo foundry.toml
con forge config --basic > foundry.toml
.
De forma predeterminada, forge config
muestra el perfil de fundición seleccionado actualmente y sus valores. También acepta los mismos argumentos que forge build
.
Puede reutilizar sus variables de entorno .dapprc
ejecutando source .dapprc
antes de usar una herramienta Foundry.
Puede encontrar guías de instalación y configuración adicionales en el Libro de Foundry:
Configurando VSCode
Autocompletados de shell
Consulte nuestras pautas de contribución.
Primero, vea si la respuesta a su pregunta se puede encontrar en el libro o en la caja correspondiente.
Si la respuesta no está ahí:
Únase al soporte de Telegram para obtener ayuda, o
Abra una discusión con su pregunta, o
Abrir un problema con el error
Si desea contribuir o seguir la discusión de los colaboradores, puede utilizar nuestro telegrama principal para conversar con nosotros sobre el desarrollo de Foundry.
Foundry es una reescritura en sala limpia del marco de pruebas DappTools. Nada de esto hubiera sido posible sin el trabajo del equipo de DappHub a lo largo de los años.
Matthias Seitz: Creó ethers-solc, que es la columna vertebral de nuestro proceso de compilación, así como innumerables contribuciones a ethers, en particular las macros abigen
.
Rohit Narurkar: Creó el administrador de versiones de Rust Solidity svm-rs que usamos para detectar y administrar automáticamente múltiples versiones de Solidity.
Brock Elmore: para ampliar los códigos de trucos de la máquina virtual e implementar el seguimiento estructurado de llamadas, una característica fundamental para depurar llamadas de contratos inteligentes.
Todos los demás contribuyentes a los repositorios y salas de chat de ethers-rs & foundry.