Implemente un dapp en Bubs testnet

Primero, revisa el Página de testnet de bubs y el Implemente un contrato inteligente en Bubs testnet tutorial.

Necesitará una cuenta financiada para implementar su contrato inteligente.

A continuación, clone el gm-portal desde Github y empezar la interfaz:

bash

cd $HOME
git clone https://github.com/jcstein/gm-portal.git
cd gm-portal/frontend
yarn && yarn dev

En una nueva instancia de terminal, establezca su clave privada para el grifo como variable y la URL de RPC que está utilizando:

bash

export PRIVATE_KEY=ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
export BUBS_RPC_URL=https://bubs.calderachain.xyz/http

Ahora, cambia al gm-portal/contracts directorio en el mismo terminal e implementar el contrato usando Foundry:

bash

cd $HOME/gm-portal/contracts
forge script script/GmPortal.s.sol:GmPortalScript --rpc-url $BUBS_RPC_URL --private-key $PRIVATE_KEY --broadcast

En la salida de la implementación, busque la dirección del contrato y configúrela como una variable:

bash

export CONTRACT_ADDRESS=<your-contract-address-from-the-output-above>

¡A continuación, está listo para interactuar con el contrato desde su terminal!

Primero, envíe un "gm" al contrato:

bash

cast send $CONTRACT_ADDRESS \
"gm(string)" "gm" \
--private-key $PRIVATE_KEY \
--rpc-url $BUBS_RPC_URL

Ahora que ha publicado en el contrato, puede leer todos los "gms" (GM) del contrato con este comando:

bash

cast call $CONTRACT_ADDRESS "getAllGms()" --rpc-url $BUBS_RPC_URL

A continuación, consulte el número total de gms, que se devolverá como un valor hexadecimal:

bash

cast call $CONTRACT_ADDRESS "getTotalGms()" --rpc-url $BUBS_RPC_URL

Para interactuar con el contrato en la interfaz, deberá financiar una cuenta que tenga en su billetera Ethereum. Transferencia a una cuenta externa con este comando:

bash

export RECEIVER=<receiver ETH address>
cast send --private-key $PRIVATE_KEY $RECEIVER --value 1ether --rpc-url $BUBS_RPC_URL

Si se encuentra en un terminal diferente al que establece la clave privada, es posible que deba configurarlo nuevamente.

Actualizar el frontend

A continuación, deberá actualizar algunas cosas antes de poder interactuar con el contrato en la interfaz:

  1. Cambie la dirección del contrato en gm-portal/frontend/src/App.tsx a su dirección de contrato

  2. Combina la información de la cadena en gm-portal/frontend/src/main.tsx con la configuración de cadena de su L2

  3. Si cambió el contrato, actualice el ABI en gm-portal/frontend/GmPortal.json de gm-portal/contracts/out/GmPortal.sol/GmPortal.json. Esto se puede hacer con:

bash

cd $HOME
cp dev/gm-portal/contracts/out/GmPortal.sol/GmPortal.json dev/gm-portal/frontend

Interactúa con la interfaz

¡Ahora, inicie sesión con su billetera que financió y publique un GM en su portal de GM!

Próximos pasos

Hay muchas posibilidades de lo que se podría construir con esta pila. Estos proyectos serían buenos para construir en esta pila:

  • juegos en cadena

  • redes sociales descentralizadas

  • un despliegue de tickets de NFT

  • Optimismo en CelOPstia

  • OP Craft en Celestia

Last updated