Brownie Web3 – Desarrolle contratos inteligentes de Ethereum usando Python

Comparta conocimientos básicos sobre Brownie Web3 y amplíe cómo usarlo para desarrollar contratos inteligentes de Ethereum implementados en la cadena de bloques.

Para los desarrolladores de contratos inteligentes Web3.0, Brownies hace que su vida sea mucho más fácil para desarrollar, importar, probar y depurar contratos inteligentes implementados en la red de cadena de bloques Ethereum. Además, le facilita configurar transacciones, métodos y variables para interactuar con Ethereum.

Desde entonces, repasaré los conocimientos básicos sobre Brownie y ampliaré cómo usar Brownie para desarrollar contratos inteligentes de Ethereum e implementarlos en la red de cadena de bloques.

Brownie Web3.0: ingredientes para desarrollar contratos inteligentes de Ethereum que interactúan con la red de criptomonedas

Brownie, Python, Infura, os, Ganache, MetaMask, red de prueba ETH Goerli

Tabla de contenidos

que es brownie

Brownie es un marco amigable y fácil de usar para desarrollar contratos inteligentes de Ethereum. El principal valor de su ámbito de funciones tiene 3 aspectos:

Implemente los contratos inteligentes necesarios en las redes blockchain

Cree diferentes tipos y propósitos de contratos inteligentes e impleméntelos en la cadena de bloques como Ethereum. Y puede crear e iniciar cualquier elemento transaccional que sea importante en la interacción con la cadena de bloques.

Interactuar con los contratos inteligentes

El marco de Brownie y la ruta de la carpeta le permiten escribir scripts o usar la consola de Brownie para interactuar con los contratos inteligentes implementados en la red principal. O puede implementar UAT en un entorno de cadena de bloques local, por ejemplo: Ganache

Pruebe los contratos inteligentes en desarrollo

Brownie proporciona un entorno de prueba de desarrollo de contrato inteligente rápido, amigable y fácil de usar y las funciones relacionadas para implementar la prueba. Por ejemplo, puede obtener información detallada cuando se revierte una transacción para ayudarlo a identificar el problema rápidamente.

Activar Brownie e Instalar Ganache Local Blockchain Instalación

Paso 1: Instalación de Brownie

Tome el entorno MacOS, por ejemplo. Lo primero es lo primero, necesitamos instalar un entorno visual para Brownie escribiendo la línea de códigos de la siguiente manera en la terminal.

Python3 -m pip install –user pipx

Python3 -m pipx ensure path

Una vez finalizada la instalación, asegúrese de cerrar el terminal para evitar conflictos o activar el entorno visual.

Luego, ingrese la línea de códigos de la siguiente manera para instalar Brownie

Pips install eth-brownie

Para verificar si lo ha instalado en su Mac, podemos escribir el comando de verificación, que es lo mismo que cualquier otra verificación de paquete.

Paso 2: Cree la primera carpeta y proyecto de secuencia de comandos de Brownie

Supongo que ha creado una nueva carpeta en su software de codificación, por ejemplo: código de estudio visual. Ahora podemos intentar crear un nuevo proyecto de brownie. Aquí está el código para la iniciación de la siguiente manera:

Brownie init

Una vez que se realiza la iniciación, así como la instalación de reacción, la carpeta Brownie aparece con una lista de carpetas de forma predeterminada. Son las carpetas que tienen diferentes funciones así:

  • Construir
  • Contratos
  • Interfaces
  • Informes
  • Guiones
  • Pruebas

Paso 3: Instale la CLI local de Ganache

Brownie funciona de forma predeterminada con Ganache CLI en la terminal, que es un entorno visual de cadena de bloques local. En nuestro artículo anterior, el script se conecta directamente a la versión de la interfaz de usuario web. Esta vez requiere que instalemos Ganache CLI.

  • Descargue node.js (Aquí está la versión de macOS) e instálelo en el dispositivo
  • Comando: npm install –global yarn . Necesitamos instalar yarn, que es un administrador de paquetes que en realidad nos permite descargar piezas y paquetes como Ganache CLI. Asegúrese de agregar sudo si su dispositivo puede responder que no tiene permiso para instalar yarn.
  • Instale Ganache CLI usando los comandos: yarn global add ganache-cli . Nuevamente, asegúrese de agregar sudo si su dispositivo lo rechaza nuevamente.

Cree el primer contrato inteligente e impleméntelo en Ganache CLI

Añadir el contrato inteligente

En las carpetas de contratos de Brownie, es para que usted guarde el archivo de contrato inteligente, como easy2digitalStore.sol . Después de agregar el archivo en esta carpeta, puede ingresar esta línea de código de la siguiente manera:

Brownie compile

Una vez que compila el archivo sol dado, puede ver toda la información compilada guardada en la carpeta de compilación en la carpeta del contrato en formato JSON.

Despliegue en la cadena de bloques ETH

Lo primero es lo primero, necesitamos crear un nuevo archivo de Python en la carpeta del script

Deployment.py

En el script, necesitamos usar el método de un brownie, que es las accounts() , que es para interactuar con la cadena de bloques visual local, Ganache CLI. Aquí están los ejemplos de código siguientes:

Import brownie import accounts

def single_contract():

localGanacheAccount = accounts[0]

print(localGanacheAccount)

Def main():

single_contracct()

Y podemos usar la ejecución de brownie para activar el script de python en la terminal.

Agregue una nueva cuenta y conéctese a la red de prueba real

Podemos crear una nueva cuenta en lugar de usar la CLI de Ganache. Aquí están tanto el comando como el código de la siguiente manera:

En terminales:

Brownie accounts new easy2digitalAccount-account

Luego, debe agregar una clave privada para esta nueva cuenta. Podemos copiar la clave privada de MetaMask y pegarla aquí.

Por último, pero no menos importante, Brownie encriptaría su clave privada usando una contraseña. Por lo tanto, simplemente ingrese una contraseña como desee.

Si intenta ejecutar usando el método de carga para buscar la nueva cuenta que acaba de crear, se verá como este resultado de la siguiente manera:

Conéctese a una red de prueba real

Brownie proporciona una lista de redes declaradas. Si desea verificar, simplemente ingrese el comando lista de redes brownie en la terminal.

En el artículo anterior, usamos Infura como una plataforma de terceros para conectarnos a Ethereum. Así que aquí también usaríamos INFURA.

Lo primero es lo primero, necesitamos un protocolo de proveedor HTTP de INFURA. En Brownie, tenemos un método para conectar con Infura. Agregue esto al .env

WEB3_INFURA_PROJECT_ID = your infura http endpoint unique ID.

Luego, en lugar de obtener la cuenta de Ganache CLI, ahora necesitamos obtener la cuenta de su red de prueba Goerli de MetaMask.

Agregue la clave privada que desea agregar, como la billetera MetaMask. Asegúrese de agregar 0x antes de la clave privada de MetaMask. Aquí tenemos que hacer tres cosas.

  • Cree una función get_account que busque la información de la clave privada de la billetera MetaMask
  • Agregue el archivo brownie-config.yaml en la carpeta del directorio principal para conectarse con .env, que incluye la clave privada y la ID única del terminal INFURA
  • Reemplace account[0] con get_account() en el script de prueba de Ganache Cli.

Por último, debemos decirle a Infura qué red de prueba ETH usará el script de python. Como usamos goerili en el artículo anterior, aquí use el mismo ingresando el comando en la terminal

Brownie run scripts/deployment.py –network goerli

Una vez que esté conectado, puede ir a la sección de implementación en la carpeta de compilación, se genera un archivo JSON de mapa.

Pruebe y depure sus contratos inteligentes

Una de las características poderosas de Brownie debe ser el entorno de prueba. Los desarrolladores de contratos inteligentes pueden implementar el UAT y corregir los errores antes de comenzar.

Vamos a crear un script tan bien como el script deployment.py que creamos en la carpeta de prueba.

Lo primero es lo primero, Brownie es muy conveniente porque puede permitir a los desarrolladores importar directamente el contrato inteligente en el script de python.

Aquí está el ejemplo de código:

From brownie import easy2idigitalContract, accounts

Entonces podemos usar directamente el nombre del contrato con el método deploy() para implementar la cuenta en una cadena de bloques. Por ejemplo:

Def test_deployment():

##Arrange a specific smart contract address

walletAccount = accounts[0]

##Deploy the contract to the account

Single_contract = easy2idigitalContract.deploy({“from”: walletAccount})

Starting_value = single_contract.retrieve()

En segundo lugar, como es una prueba, debemos verificar si el valor recuperado es igual al valor esperado que debería ser. Así que aquí está la muestra de códigos de la siguiente manera:

Expected == 0

Assert starting_value == expected

Luego, ingrese el comando en la terminal para ver si el valor es igual. Si el resultado es aprobado, se mostrará aprobado en color verde.

Brownie test

Consola Brownie para cualquier prueba y desarrollo de funciones Adhoc

Para la prueba del script, si desea crear un shell o una consola para probar y ejecutar el script. Puede intentar ingresar el código de la siguiente manera, donde puede actualizar directamente el script e imprimirlo para obtener el resultado de inmediato.

Brownie test –pdb

Script Python completo de Brownie Web3.0: desarrolle contratos inteligentes y active la interacción con ETH usando Brownie y Python

Si está interesado en el tutorial Web3.0 3 – Brownie en Web3.0 – Desarrollar contratos inteligentes de Ethereum interactuando con la red de criptomonedas usando Brownie y Python, suscríbase a nuestro boletín de noticias agregando el mensaje "Web3.0 tutorial 3" . Le enviaremos el guión inmediatamente a su buzón.

Espero que disfrute leyendo el tutorial 3 de Web3.0: Brownie en Web3.0: desarrolle contratos inteligentes de Ethereum interactuando con la red de criptomonedas usando Brownie y Python. nuestro canal

  • Apoya y dona a mi canal a través de PayPal ( paypal.me/Easy2digital )
  • Suscríbete a mi canal y activa la campanita de notificaciones Easy2Digital Youtube channel .
  • Sigue y dale me gusta a mi página Easy2Digital Facebook page
  • Comparte el artículo en tu red social con el hashtag #easy2digital
  • Te suscribes a nuestro boletín semanal para recibir los últimos artículos, videos y códigos de descuento de Easy2Digital
  • Suscríbase a nuestra membresía mensual a través de Patreon para disfrutar de beneficios exclusivos ( www.patreon.com/louisludigital )