Ir al contenido principal
Versión: 2.0.0

Generador de fichas en Celo

Este proyecto demuestra cómo crear y desplegar automáticamente tokens ERC20 en la cadena de bloques Celo utilizando ContractKit. Incluye un generador de nombres impulsado por IA (utilizando el Nodo Público de Gaia ejecutando el modelo de parámetros Llama 3.2 8B) y scripts de despliegue automático.

información

El código fuente completo y las instrucciones detalladas para configurar y ejecutar este ejemplo se pueden encontrar en el repositorio Gaia Cookbook.

Requisitos previos

  • Node.js v20.x +
  • Una cartera con fichas de prueba (¡te ayudaremos a conseguirlas!)

Primeros pasos

  1. Clonar este repositorio
git clone https://github.com/harishkotra/celo-token-agent
cd celo-token-agent
  1. Instalar dependencias
npm instalar
  1. Crear un .env archivo:
PRIVATE_KEY=su_clave_privada
GAIA_API_KEY=su_clave_gaia_api_key

Obtención de testigos de prueba

Antes de desplegar tu token, necesitarás algunos tokens de prueba:

  1. Visite el grifo Celo
  2. Conecta tu monedero o pega la dirección de tu cuenta
  3. Haga clic para recibir:
    • A-CELO (para tasas de gas)
    • cUSD (opcional)

El grifo le enviará fichas de prueba que podrá utilizar para la implantación.

Cómo funciona

Integración de ContractKit

Este proyecto utiliza ContractKit de Celo para interactuar con la blockchain. Esto es lo que hace cada parte:

  • tokenGenerator.js: Crea nombres de token únicos usando IA (usando el Nodo Público de Gaia ejecutando Llama 3.2 8B) o vuelve a la generación aleatoria.
  • tokenDeployer.js: Gestiona el despliegue del contrato inteligente utilizando ContractKit.
  • MemeToken.sol: El contrato de tokens ERC20 construido con OpenZeppelin

Funciones clave de ContractKit que utilizamos:

// Initialize ContractKit
const web3 = new Web3(rpcUrl);
const kit = newKitFromWeb3(web3);

// Add your account
kit.addAccount(privateKey);

// Deploy using A-CELO for gas
const tx = await deploy.send({
from: defaultAccount,
gas
});

Contrato inteligente

Nuestro token es un token ERC20 estándar con:

  • Nombre y símbolo personalizados
  • Suministro inicial fijado en el momento del despliegue
  • Funciones estándar de transferencia y aprobación

Despliegue

  1. Redacta el contrato:
npx hardhat compile
  1. Despliega tu ficha:
node deploy.js

El guión lo hará:

  1. Generar un nombre de token
  2. Compruebe su saldo
  3. Despliegue del contrato
  4. Proporcionarle la dirección del contrato y los detalles de la transacción

Entender el Código

El proyecto utiliza tres componentes principales:

  1. Generación de fichas

    • Genera nombres de token creativos
    • Utiliza IA con generación aleatoria
    • Configura el suministro inicial de fichas
  2. Despliegue de contratos

    • Utiliza ContractKit para interactuar con Celo
    • Gestiona la estimación del gas y la supervisión de las transacciones
    • Proporciona actualizaciones del estado de despliegue
  3. Contrato inteligente

    • Implementación estándar de ERC20
    • Construido con OpenZeppelin para la seguridad
    • Desplegable en la red de pruebas Alfajores de Celo

Ejemplos de respuestas

AI generated token: { name: "Satoshi's Catnip", symbol: 'SCP' }
Reading artifacts from: /Users/shk/experiments/onchainkit-gaia/artifacts/contracts/MemeToken.sol/MemeToken.json
Deploying from account: 0xbDe71618Ef4Da437b0406DA72C16E80b08d6cD45
Account balance:
A-CELO: 10.353296994614 A-CELO
Sending deployment transaction...
Transaction sent! Hash: 0xd5b17d8ce38ddf50ca7366cf658b3d24d6d9a1d0e3bce6e50b870bd50e961792
Deployment confirmed in block: 35794429
Token deployed successfully!
{
name: "Satoshi's Catnip",
symbol: 'SCP',
address: '0x0563109c80733Ea484F86b653262ecA50b8a06d6',
transactionHash: '0xd5b17d8ce38ddf50ca7366cf658b3d24d6d9a1d0e3bce6e50b870bd50e961792',
explorer: 'https://alfajores.celoscan.io/address/0x0563109c80733Ea484F86b653262ecA50b8a06d6'
}
AI generated token: { name: 'LolToken', symbol: 'LOL' }
Reading artifacts from: /Users/shk/experiments/onchainkit-gaia/artifacts/contracts/MemeToken.sol/MemeToken.json
Deploying from account: 0xbDe71618Ef4Da437b0406DA72C16E80b08d6cD45
Account balance:
A-CELO: 10.337778442114 A-CELO
Sending deployment transaction...
Transaction sent! Hash: 0xfe83c066173362374b1c6a420c2fdc37f7fd4f923bd3d8a3b94e384988cbde13
Deployment confirmed in block: 35797227
Token deployed successfully!
{
name: 'LolToken',
symbol: 'LOL',
address: '0x47442330f26B58D7C1b7D13ed20fE1244aE58Dbe',
transactionHash: '0xfe83c066173362374b1c6a420c2fdc37f7fd4f923bd3d8a3b94e384988cbde13',
explorer: 'https://alfajores.celoscan.io/address/0x47442330f26B58D7C1b7D13ed20fE1244aE58Dbe'
}

¿Necesita ayuda?

información

El código fuente completo y las instrucciones detalladas para configurar y ejecutar este ejemplo se pueden encontrar en el repositorio Gaia Cookbook.