Implemente un contrato inteligente en Bubs testnet
Last updated
Last updated
En este tutorial, implementaremos un contrato inteligente en la red de prueba de Bubs.
instalado en su máquina
Comprensión básica de Ethereum
Comprensión básica de Solidity y Node.js
Bubs ETH de la
Una URL de RPC de Bubs desde el
Primero, en tu $HOME
directorio, configure una nueva carpeta de proyecto para este tutorial e inicie el proyecto con npm:
bash
A continuación, inicializa un proyecto de Foundry con el siguiente comando:
bash
Echa un vistazo a la Counter.sol
archivo en tu counter-project/counter_contract/src
directorio:
solidez
El contrato contiene una variable entera pública sin firmar llamada "número". Hay dos funciones públicas en este contrato. El setNumber
la función permite a cualquiera establecer un nuevo valor para la variable "número", mientras que el increment
la función aumenta el valor del "número" en uno cada vez que se llama.
Para compilar el contrato, ejecute el siguiente comando forge del $HOME/counter-project/counter_contract/
directorio:
bash
Su salida debe ser similar a la siguiente:
bash
Ahora, abre el test/Counter.t.sol
archivo:
solidez
Este archivo realiza pruebas unitarias en el contrato que creamos en la sección anterior. Esto es lo que está haciendo la prueba:
El contrato incluye una variable de tipo "Contador" pública llamada "contador". En el setUp
función, inicializa una nueva instancia del contrato "Contador" y establece la variable "número" en 0.
Hay dos funciones de prueba en el contrato: testIncrement
y testSetNumber
.
El testIncrement
la función prueba la función de "incremento" del contrato de "Contador" llamándolo y luego afirmando que el "número" en el contrato de "Contador" es 1. Verifica si la operación de incremento aumenta correctamente el número en uno.
El testSetNumber
la función es más genérica. Toma un argumento entero sin firmar 'x' y prueba la función "setNumber" del contrato "Counter. Después de llamar a la función "setNumber" con 'x', afirma que el "número" en el contrato "Counter" es igual a 'x'. Esto verifica que la función "setNumber" actualiza correctamente el "número" en el contrato "Counter.
Ahora, para probar su código, ejecute lo siguiente:
bash
Si la prueba es exitosa, su salida debe ser similar a esto:
bash
Primero, probaremos nuestro contrato en un devnet local llamado "anvil". Para iniciar el servidor local, ejecute:
bash
Verá un punto final local de RPC (127.0.0.1:8545
) y cuentas para probar.
Desplieguemos el contrato ahora. Primero, establezca una clave privada del yunque:
bash
Ahora, implemente el contrato:
bash
bash
Ahora que estamos listos para implementar el contrato inteligente en Bubs, ejecutaremos el forge create
comando.
bash
Una implementación exitosa devolverá una salida similar a la siguiente:
bash
Una vez que haya implementado el contrato, ¡está listo para interactuar con él!
Primero, lo estableceremos como una variable:
bash
Usos de fundición cast
, una CLI para realizar llamadas RPC de Ethereum.
Para escribir al contrato, usaremos el cast send
comando:
bash
Su salida se verá similar:
bash
Ahora, podemos hacer una llamada de lectura para ver el estado de la variable numérica, utilizando el cast call
comando:
bash
El resultado se verá similar:
bash
Convierta el resultado de hexadecimal a un valor base 10 con:
bash
¡Felicitaciones! Ha aprendido cómo implementar un contrato inteligente en Bubs testnet.
Puedes .
Primero, establezca una clave privada de su billetera Ethereum financiada y establezca la BUBS_RPC_URL
variable con un :
¿Qué construirás a continuación? Ahora, estás listo para ver el .