Skip to main content

简介

在本指南中,您将在 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. 验证合约:

验证成功后,您应该会在 MonadVision 上看到已验证的合约。您应该会看到一个对勾以及说明合约源代码已验证的横幅。 Verified Contract

用于链上代币转账交易的脚本

我们进行一些链上代币转账交易,以触发 GhostGraph 将要索引的 Transfer 事件。 查看转账脚本 script/TransferCatTokens.s.sol
script/TransferCatTokens.s.sol
运行以下命令执行转账:
您现在已经部署了 ERC-20 合约并在 Monad 测试网上提交了交易。让我们使用 GhostGraph 来追踪这些链上事件。

设置 GhostGraph 索引

  1. 访问 GhostGraph 并点击注册账户
  2. 创建一个新的 GhostGraph
create_ghost_graph
  1. 将下面的内容复制粘贴到 events.sol 文件中。我们希望追踪代币流动。让我们在此处插入这个事件。了解更多关于事件的信息:https://docs.tryghost.xyz/ghostgraph/getting-started/define-events
events.sol
  1. 将下面的内容复制粘贴到 schema.sol 文件中。在这种情况下,我们创建了几个结构体,用于将实体保存到 Ghost 数据库中。了解更多关于 schema 的信息:https://docs.tryghost.xyz/ghostgraph/getting-started/define-schema
schema.sol
  1. 点击 generate code 按钮,生成 indexer.sol 文件以及一些其他只读文件。这个文件就是承载逻辑和转换的地方。
  2. 将下面的内容复制粘贴到 indexer.sol 中,务必将您的代币地址填入 CAT_TESTNET_TOKEN_CONTRACT_ADDRESS 变量。
indexer.sol
  1. 编译并部署您的 GhostGraph。几秒钟后,您应该会看到 GhostGraph 已成功索引您的合约。
ghostgraph_playground
  1. 点击 playground 会带您进入 GraphQL playground,您可以在这里确保数据被正确索引。让我们将下面的内容复制粘贴到 playground 中,然后点击运行按钮从 GhostGraph 获取数据。
GraphQL Playground
graphql_playground
尝试再次运行转账脚本以提交更多交易。您应该会看到 GhostGraph 自动索引新的交易。

结论

您现已成功创建了一个 GhostGraph 来追踪您合约的链上数据。下一步是将其连接到您的前端。 Ghost 团队制作了完整的端到端教程,可查看这里