Saltar para o conteúdo principal
Versão: 2.0.0

Gerador de fichas no Celo

Este projeto demonstra como criar e implantar automaticamente tokens ERC20 no blockchain Celo usando o ContractKit. Inclui um gerador de nomes alimentado por IA (usando o Nó Público de Gaia executando o modelo de parâmetro Llama 3.2 8B) e scripts de implantação automática.

informação

O código-fonte completo e as instruções detalhadas para configurar e executar este exemplo podem ser encontrados no repositório Gaia Cookbook.

Pré-requisitos

  • Node.js v20.x +
  • Uma carteira com algumas fichas de teste (nós ajudamo-lo a obtê-las!)

Começar a trabalhar

  1. Clonar este repositório
git clone https://github.com/harishkotra/celo-token-agent
cd celo-token-agent
  1. Instalar dependências
npm install
  1. Criar um .env ficheiro:
PRIVATE_KEY=a sua chave_privada
GAIA_API_KEY=a sua_gaia_api_key

Obter tokens de teste

Antes de implantar seu token, você precisará de alguns tokens de teste:

  1. Visite a Torneira Celo
  2. Ligue a sua carteira ou cole o endereço da sua conta
  3. Clique para receber:
    • A-CELO (para as taxas de gás)
    • cUSD (opcional)

A torneira enviar-lhe-á tokens de teste que pode utilizar para a implementação.

Como funciona

Integração do ContractKit

Este projeto utiliza o ContractKit da Celo para interagir com a blockchain. Eis o que cada parte faz:

  • tokenGenerator.js: Cria nomes de fichas únicos utilizando IA (utilizando o Nó Público de Gaia com Llama 3.2 8B) ou recorre à geração aleatória
  • tokenDeployer.js: Trata da implementação do contrato inteligente usando o ContractKit
  • MemeToken.sol: O contrato de token ERC20 construído com OpenZeppelin

Principais funcionalidades do 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

O nosso token é um token ERC20 padrão com:

  • Nome e símbolo personalizados
  • Fornecimento inicial fixado aquando da implantação
  • Funções standard de transferência e aprovação

Implantação

  1. Elaborar o contrato:
npx hardhat compile
  1. Implemente o seu token:
node deploy.js

O guião irá:

  1. Gerar um nome de token
  2. Verificar o seu saldo
  3. Implementar o contrato
  4. Fornecer-lhe o endereço do contrato e os dados da transação

Compreender o código

O projeto utiliza três componentes principais:

  1. Geração de tokens

    • Gera nomes de token criativos
    • Utiliza a IA com recurso à geração aleatória
    • Configura o fornecimento inicial de fichas
  2. Implementação do contrato

    • Utiliza o ContractKit para interagir com o Celo
    • Trata da estimativa de gás e da monitorização das transacções
    • Fornece actualizações do estado da implantação
  3. Contrato inteligente

    • Implementação padrão do ERC20
    • Criado com o OpenZeppelin para segurança
    • Implementável na rede de testes Alfajores do Celo

Exemplo de respostas

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'
}

Precisa de ajuda?

informação

O código-fonte completo e as instruções detalhadas para configurar e executar este exemplo podem ser encontrados no repositório Gaia Cookbook.