简介
在本指南中,您将在 Monad 测试网上创建一个 ERC20 代币,并使用 GhostGraph 索引其转账事件。您将学到:- 部署一个基本的 ERC20 代币合约
- 在本地测试合约
- 部署到 Monad 测试网
- 使用 GhostGraph 设置事件追踪
前置条件
在开始之前,请确保您已具备:- 已安装 Node.js(v16 或更高版本)
- 已安装 Git
- 已安装 Foundry
- 一些 MONAD 测试网代币(用于支付 gas 费)
- 基本的 Solidity 与 ERC20 代币知识
项目设置
首先,克隆入门仓库:CatToken 合约实现
src/CatToken.sol 合约实现了一个基本的固定供应量的 ERC20 代币。代码如下:
src/CatToken.sol
- 创建一个名为”CatToken”、符号为”CAT”的代币
- 向部署者地址铸造 10 亿代币
- 使用 OpenZeppelin 久经考验的 ERC20 实现
测试合约
打开测试文件test/CatToken.t.sol:
test/CatToken.t.sol
部署设置
1. 创建 .env 文件:
2. 将您的凭据添加到 .env 文件中:
3. 创建部署脚本 script/DeployCatToken.s.sol:
script/DeployCatToken.s.sol
在 Monad 测试网部署 CatToken
1. 加载环境变量:
2. 部署合约:
TOKEN_ADDRESS 添加到您的 .env 文件中。
您现在应该拥有:
验证智能合约
1. 加载环境变量:
2. 验证合约:

用于链上代币转账交易的脚本
我们进行一些链上代币转账交易,以触发 GhostGraph 将要索引的Transfer 事件。
查看转账脚本 script/TransferCatTokens.s.sol:
script/TransferCatTokens.s.sol
设置 GhostGraph 索引
- 访问 GhostGraph 并点击注册账户
- 创建一个新的 GhostGraph

- 将下面的内容复制粘贴到
events.sol文件中。我们希望追踪代币流动。让我们在此处插入这个事件。了解更多关于事件的信息:https://docs.tryghost.xyz/ghostgraph/getting-started/define-events
events.sol
- 将下面的内容复制粘贴到
schema.sol文件中。在这种情况下,我们创建了几个结构体,用于将实体保存到 Ghost 数据库中。了解更多关于 schema 的信息:https://docs.tryghost.xyz/ghostgraph/getting-started/define-schema
schema.sol
-
点击
generate code按钮,生成indexer.sol文件以及一些其他只读文件。这个文件就是承载逻辑和转换的地方。 -
将下面的内容复制粘贴到
indexer.sol中,务必将您的代币地址填入CAT_TESTNET_TOKEN_CONTRACT_ADDRESS变量。
indexer.sol
- 编译并部署您的 GhostGraph。几秒钟后,您应该会看到 GhostGraph 已成功索引您的合约。

- 点击 playground 会带您进入 GraphQL playground,您可以在这里确保数据被正确索引。让我们将下面的内容复制粘贴到 playground 中,然后点击运行按钮从 GhostGraph 获取数据。
GraphQL Playground


