mcpField
Y
yoink

yoink

github.com/bankrbot其他1.2k196 次安装5 天前更新
代码仓库

关于 yoink

yoink 是 Base 上的链上夺旗游戏技能,玩家调用合约从当前持旗者手中夺旗,并累积持旗时间和夺旗次数。它说明如何查询游戏状态、检查 10 分钟冷却,并通过 Bankr 提交交易。

主要功能

  1. 01调用 yoink() 夺取旗帜
  2. 02查询当前持旗者与夺旗时间
  3. 03检查 10 分钟冷却状态
  4. 04查看玩家分数和夺旗总数
  5. 05通过 Bankr 提交夺旗交易

适用场景

  1. 01确认当前持旗者和冷却是否结束
  2. 02在满足条件后提交夺旗操作
  3. 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)

游戏规则

  1. Yoink 旗帜 - 调用 yoink() 从当前持有者手中夺取旗帜
  2. 冷却时间 - 两次 Yoink 之间必须等待 10 分钟(600 秒)
  3. 不能 Yoink 自己 - 不能从自己手中夺取旗帜
  4. 累计时间 - 持有旗帜期间,你的时间得分会增加
  5. 争夺奖杯 - 总 Yoink 次数最多的玩家持有奖杯(令牌 ID 2)
  6. 追踪 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地址 + tokenIduint256(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