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.
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
- Clonar este repositório
git clone https://github.com/harishkotra/celo-token-agent
cd celo-token-agent
- Instalar dependências
npm install
- 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:
- Visite a Torneira Celo
- Ligue a sua carteira ou cole o endereço da sua conta
- 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óriatokenDeployer.js
: Trata da implementação do contrato inteligente usando o ContractKitMemeToken.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
- Elaborar o contrato:
npx hardhat compile
- Implemente o seu token:
node deploy.js
O guião irá:
- Gerar um nome de token
- Verificar o seu saldo
- Implementar o contrato
- Fornecer-lhe o endereço do contrato e os dados da transação
Compreender o código
O projeto utiliza três componentes principais:
-
Geração de tokens
- Gera nomes de token criativos
- Utiliza a IA com recurso à geração aleatória
- Configura o fornecimento inicial de fichas
-
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
-
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?
- Para questões específicas do Celo: Celo Docs
- Para obter detalhes sobre o ContractKit: Documentação do ContractKit
- Leia um artigo pormenorizado no blogue sobre este agente aqui.
- Nós públicos de Gaia
O código-fonte completo e as instruções detalhadas para configurar e executar este exemplo podem ser encontrados no repositório Gaia Cookbook.