关于 yoink
yoink 是 Base 上的链上夺旗游戏技能,玩家调用合约从当前持旗者手中夺旗,并累积持旗时间和夺旗次数。它说明如何查询游戏状态、检查 10 分钟冷却,并通过 Bankr 提交交易。
主要功能
- 01调用 yoink() 夺取旗帜
- 02查询当前持旗者与夺旗时间
- 03检查 10 分钟冷却状态
- 04查看玩家分数和夺旗总数
- 05通过 Bankr 提交夺旗交易
适用场景
- 01确认当前持旗者和冷却是否结束
- 02在满足条件后提交夺旗操作
- 03核验夺旗结果及玩家分数
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bankrbot/ skills --skill yoink安装后在 Claude Code 中输入/yoink确认已加载。
附带文件catalog.json
详细介绍
Yoink
在 Base 上玩 Yoink,这是一款链上夺旗游戏。从当前持有者手中 Yoink 旗帜,即可开始计时。总 Yoink 次数最多的玩家持有奖杯。
合约: Base 上的 0x4bBFD120d9f352A0BEd7a014bd67913a2007a878(链 ID 8453)
游戏规则
- Yoink 旗帜 - 调用
yoink()从当前持有者手中夺取旗帜 - 冷却时间 - 两次 Yoink 之间必须等待 10 分钟(600 秒)
- 不能 Yoink 自己 - 不能从自己手中夺取旗帜
- 累计时间 - 持有旗帜期间,你的时间得分会增加
- 争夺奖杯 - 总 Yoink 次数最多的玩家持有奖杯(令牌 ID 2)
- 追踪 Yoink 次数 - 你的 Yoink 总次数与时间分开追踪
合约接口
RPC 模板:
curl -s -X POST https://mainnet.base.org -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x4bBFD120d9f352A0BEd7a014bd67913a2007a878","data":"SELECTOR+PARAMS"},"latest"],"id":1}' | jq -r '.result'
| 函数 | 选择器 | 参数 | 返回值 |
|---|---|---|---|
yoink() | 0x9846cd9e | - | (写入) |
lastYoinkedBy() | 0xd4dbf9f4 | - | 地址 |
lastYoinkedAt() | 0x6a99616f | - | uint256 时间戳 |
totalYoinks() | 0xa5d0dadd | - | uint256 |
topYoinker() | 0x6a974e6e | - | 地址(奖杯持有者) |
mostYoinks() | 0xd2d7774a | - | uint256(记录) |
COOLDOWN() | 0xa2724a4d | - | uint256(600) |
score(address) | 0x776f3843 | 地址(32B 补齐) | (Yoink 次数、时间、lastYoinkedAt) |
balanceOf(address,uint256) | 0x00fdd58e | 地址 + tokenId | uint256(FLAG_ID=1,TROPHY_ID=2) |
编码: 地址会在左侧补零至 32 字节。score() 返回 96 字节(3 × uint256)。
Yoink 旗帜
使用 Bankr 的任意交易功能:
{
"to": "0x4bBFD120d9f352A0BEd7a014bd67913a2007a878",
"data": "0x9846cd9e",
"value": "0",
"chainId": 8453
}
错误
| 错误 | 选择器 | 含义 |
|---|---|---|
SlowDown(uint256) | 0x58d6f4c6 | 冷却时间尚未结束。参数 = 剩余秒数。 |
Unauthorized() | 0x82b42900 | 你已经持有旗帜。 |
冷却时间检查: current_time - lastYoinkedAt() >= 600
工作流
- 查询
lastYoinkedBy()和lastYoinkedAt(),检查状态和冷却时间 - 确认冷却时间已结束(600 秒),且你不是当前持有者
- 通过 Bankr 提交 Yoink 交易
- 使用
lastYoinkedBy()或score(address)验证
资源
评论
支持 Markdown