Trình tạo mã thông báo trên Celo
Dự án này trình bày cách tự động tạo và triển khai token ERC20 trên blockchain Celo bằng ContractKit. Nó bao gồm trình tạo tên do AI hỗ trợ (sử dụng Public Node của Gaia chạy mô hình tham số Llama 3.2 8B) và các tập lệnh triển khai tự động.
Mã nguồn đầy đủ và hướng dẫn chi tiết để thiết lập và chạy ví dụ này có thể được tìm thấy trong kho lưu trữ Gaia Cookbook .
Điều kiện tiên quyết
- Node.js v20.x +
- Một ví có một số token thử nghiệm (chúng tôi sẽ giúp bạn có được những token này!)
Bắt đầu
- Sao chép kho lưu trữ này
git clone https://github.com/harishkotra/celo-token-agent
cd celo-token-agent
- Cài đặt các phụ thuộc
Cài đặt npm
- Tạo một
.env
tài liệu:
PRIVATE_KEY=khóa_riêng_của_bạn
GAIA_API_KEY=khóa_api_gaia_của_bạn
Nhận Mã thông báo Kiểm tra
Trước khi triển khai mã thông báo, bạn sẽ cần một số mã thông báo thử nghiệm:
- Ghé thăm vòi Celo
- Kết nối ví của bạn hoặc dán địa chỉ tài khoản của bạn
- Nhấp để nhận:
- A-CELO (cho phí gas)
- cUSD (tùy chọn)
Vòi sẽ gửi cho bạn mã thông báo thử nghiệm mà bạn có thể sử dụng để triển khai.
Nó hoạt động như thế nào
Tích hợp ContractKit
Dự án này sử dụng ContractKit của Celo để tương tác với blockchain. Sau đây là chức năng của từng phần:
tokenGenerator.js
: Tạo tên mã thông báo duy nhất bằng AI (sử dụng Nút công khai của Gaia chạy Llama 3.2 8B) hoặc quay lại tạo ngẫu nhiêntokenDeployer.js
: Xử lý việc triển khai hợp đồng thông minh bằng ContractKitMemeToken.sol
: Hợp đồng mã thông báo ERC20 được xây dựng với OpenZeppelin
Các tính năng chính của ContractKit mà chúng tôi sử dụng:
// 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
});
Hợp đồng thông minh
Token của chúng tôi là token ERC20 tiêu chuẩn với:
- Tên và biểu tượng tùy chỉnh
- Bộ cung cấp ban đầu khi triển khai
- Chức năng chuyển giao và phê duyệt tiêu chuẩn
Triển khai
- Biên soạn hợp đồng:
npx hardhat biên dịch
- Triển khai mã thông báo của bạn:
node triển khai.js
Kịch bản sẽ:
- Tạo tên mã thông báo
- Kiểm tra số dư của bạn
- Triển khai hợp đồng
- Cung cấp cho bạn địa chỉ hợp đồng và thông tin chi tiết giao dịch
Hiểu về Mã
Dự án sử dụng ba thành phần chính:
-
Tạo mã thông báo
- Tạo tên mã thông báo sáng tạo
- Sử dụng AI với khả năng dự phòng để tạo ngẫu nhiên
- Cấu hình nguồn cung cấp mã thông báo ban đầu
-
Triển khai hợp đồng
- Sử dụng ContractKit để tương tác với Celo
- Xử lý ước tính khí đốt và giám sát giao dịch
- Cung cấp cập nhật trạng thái triển khai
-
Hợp đồng thông minh
- Triển khai ERC20 tiêu chuẩn
- Được xây dựng với OpenZeppelin để bảo mật
- Có thể triển khai vào mạng thử nghiệm Alfajores của Celo
Ví dụ phản hồi
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'
}
Cần trợ giúp?
- Đối với các câu hỏi cụ thể về Celo: Celo Docs
- Để biết chi tiết về ContractKit: Tài liệu ContractKit
- Đọc bài viết blog chi tiết về tác nhân này tại đây .
- Các nút công khai của Gaia
Mã nguồn đầy đủ và hướng dẫn chi tiết để thiết lập và chạy ví dụ này có thể được tìm thấy trong kho lưu trữ Gaia Cookbook .