核心功能
本 skill 为 Aavegotchi 生态的 Baazaar 市场提供链上交互能力,覆盖 Base 主网(chainId 8453)三大核心场景:
1. 查看市场挂单:通过 Goldsky Subgraph 查询 ERC721/ERC1155 活跃挂单,支持按 ID 精确检索或分页浏览最新列表
2. 执行购买交易:
3. 添加新挂单:支持 ERC721/ERC1155 资产上架,需预先支付 listing fee 并设置 Diamond 合约授权
- GHST 直付:调用
executeERC721/1155ListingToRecipient方法 - USDC 兑换购买:通过
swapAndBuy*方法自动完成 USDC→GHST 兑换并执行购买,内置滑点保护(SLIPPAGE_PCT)
显著优点
- 安全优先设计:默认
dryRun=true(DRY_RUN=1),所有交易必须通过cast call模拟成功后,显式指令才切换至cast send广播 - 多重链上验证:强制校验 chain-id(8453)、私钥与地址匹配性,防止误操作至错误网络
- 输入严格消毒:提供 Python 校验模板,限制
listing_id为纯数字、token_contract为 0x+40 十六进制、price_in_wei为无符号整数,阻断 RCE 攻击面 - 灵活的支付方式:原生支持 USDC 入口,降低新用户获取 GHST 的摩擦
潜在局限与风险
| 类别 | 说明 |
|------|------|
| **工具依赖** | 强制依赖 Foundry `cast` 二进制,需 `~/.foundry/bin/cast` 路径可用 |
| **环境配置复杂** | 需配置 10+ 环境变量(`PRIVATE_KEY`, `BASE_MAINNET_RPC`, 合约地址等),初学者门槛较高 |
| **私钥管理** | `PRIVATE_KEY` 以明文环境变量形式注入,虽禁止日志输出,但仍存在进程泄露风险 |
| **价格计算敏感** | USDC 兑换需手动计算 `swapAmount`(6 位小数),滑点参数配置错误可能导致交易失败或多付 |
| **子图延迟** | 挂单状态以 Goldsky 子图为准,存在索引延迟,文档强调"广播前必须重新获取"但仍可能竞态 |
| **网络限定** | 仅支持 Base 主网,无测试网或备用链支持 |
适用人群
- 已持有 Aavegotchi NFT/GHST/USDC 的活跃玩家
- 熟悉 Foundry 工具链的链上操作者
- 需要自动化批量挂单或扫货策略的量化交易者(可结合 cron 非交互式执行)
- 不适合:纯新手用户、无自托管钱包经验者、期望 GUI 交互的玩家
常规风险
- 交易失败风险:Gas 波动、滑点设置不当、子图状态滞后均可能导致交易回滚
- 授权风险:ERC721/1155 的
setApprovalForAll授权至 Diamond 合约后,需信任合约安全性 - MEV 风险:公开子图数据可能被三明治攻击者利用,大额交易建议提高滑点容忍度并拆分执行
- 私钥泄露风险:环境变量注入模式在共享环境(CI/CD、多用户服务器)中需额外隔离
- 合约升级风险:Diamond 代理模式支持逻辑升级,需关注官方公告防范接口变更