# Reishi Hunt · 完整手册(给 AI) > 这是 https://reishi-hunt.pages.dev 的完整机器可读手册。索引版见 https://reishi-hunt.pages.dev/llms.txt。 > 内容由页面构建时同一份数据源生成,与网站上可复制的提示词逐字一致。 最后构建:2026-10-29T11:07:08.157Z --- ## 1. 地址与参数 ``` 链 BSC Testnet(chainId 97) RPC https://bsc-testnet-rpc.publicnode.com BLC 0x9A3ba8cf742bB1d2ba99De54abfcC46c931A508b 军衔 NFT 0x0773727391d99422dB0D6FfB874A74230dAF7890 狩猎场 0xF0A442bf208C1eD5cEd9bA2382E40C87E207fFc9 单价 0.0013479 BNB(每个势力首枚免费,之后每枚这个价,单钱包每势力上限 8 枚) ``` | 项 | 值 | |---|---| | 每势力上限 | 8,888 枚下级(合计 26,664) | | 每钱包每势力上限 | 8 枚 | | 每钱包免费额度 | 每势力 1 枚(三势力各 1,共最多 3 枚) | | 日产出 | 7,200 BLC,全势力共享一个池 | | 开矿条件 | 任一势力售罄即可开(没有时间兜底) | | BLC 总量 | 21,000,000 | ## 2. 当量:唯一的收益变量 ``` 1. 每枚 NFT 的「当量」= nft.weightOf(id) = 它累计消耗的 BLC。铸造自带 5 BLC;升阶烧 10 / 50 / 280 全额累加;合成时被吞的当量原样转给新 NFT,守恒。 2. 日产出固定 7,200 BLC,按在线当量占比分配。不是按军衔,没有「效率系数」。 3. 同一枚 NFT 的当量成长:刚铸造 5 → 升一档 15 → 升两档 65 → 升三档 345。 4. 回本天数 = 全网总当量 ÷ 7,200。任何一档都一样,不存在「贵的档更划算」。 5. 只有领先势力拿产出:在线当量最高的势力独吞 7,200,另外两家这段时间为 0、pending 冻结。平局归编号小的(死神 > 虚 > 灭却师)。 ``` ### 军衔只是当量的一个快照 | 军衔 | 升到这一档累计烧的 BLC | 当量 | 说明 | |---|---|---|---| | 队士 | 0(铸造自带 5) | 5 | 铸造只出这一档 | | 席官 | 10 | 15 | | | 副队长 | +50 | 65 | | | 队长 | +280 | 345 | 顶级,不能再升 | 反过来:合成出来的 NFT,当量 = 被吞掉那些的当量之和,与军衔无固定对应。所以**判断收益只能读 weightOf,不能看军衔**。 ## 3. 合成配方(三势力不同) ``` · 死神  下级→中级 2 枚下级|中级→上级 3 枚中级|上级→顶级 4 枚上级(折合 2 / 6 / 24 枚下级) · 虚   下级→中级 3 枚下级|中级→上级 3 枚下级 + 2 枚中级|上级→顶级 1 枚中级 + 2 枚上级(折合 3 / 9 / 21 枚下级) · 灭却师 下级→中级 5 枚下级|中级→上级 4 枚中级|上级→顶级 2 枚上级(折合 5 / 20 / 40 枚下级) ``` 配方由「这批里最高的那一阶」决定,必须逐项对上;不能跨势力;顶级不参与任何配方。 合成手续费 = 该阶升阶成本的 0.5%(下级 0.05 / 中级 0.25 / 上级 1.4 BLC),走 blc.transferFrom,**必须先 approve**。 ## 4. 税制 结算产出 1% | 烧币升阶 0.5% | 合成 0.5% | BLC 买卖各 0.5%(全部 constant,部署后不可改,全部进 treasury) ## 5. 系统提示词(粘一次,之后整个会话都有效) ### 5.1 铸造与升阶页 ``` 你是《死神》灵子狩猎场的铸造与升阶代理。工作对象是三条部署在 BSC 的合约,所有判断必须来自链上读数,不得凭印象推测。 【地址】chainId 97 灵子代币 BLC 0x9A3ba8cf742bB1d2ba99De54abfcC46c931A508b 军衔 NFT 0x0773727391d99422dB0D6FfB874A74230dAF7890 狩猎场合约 0xF0A442bf208C1eD5cEd9bA2382E40C87E207fFc9 我的钱包 (连接钱包后由页面填入真实地址) 【世界观】 灵子代币 BLC 是狩猎产出的记账单位,总量 21,000,000,功能上等同于经验值:只能通过升阶被销毁,不能增发。 【铸造规则】 1. 三个势力:0 死神 / 1 虚 / 2 灭却师,每势力各 8,888 枚下级(合计 26,664)。铸造只产出下级(tier 0),高阶只能靠升阶或合成。接口是 nft.mint(faction, count),faction 必填。 2. 首枚免费按「势力」独立计:每个钱包在死神、虚、灭却师**各**有 1 枚免费(只付 gas),三势力合计最多 3 枚;某个势力用掉免费后,该势力第 2 枚起每枚 0.0013479 BNB(约合 $1.00,以链上 BNB 报价为准,法币价值随行情浮动)。 3. 单钱包每势力上限 8 枚。超额 revert WalletCapReached,该势力售罄 revert SoldOut。 4. msg.value 必须精确等于 nft.quoteMint(地址, faction, count) 返回的 wei,多一分少一分都 revert WrongPrice。 5. 单个势力售罄后该势力停止铸造,其余势力照常;只要有一个势力售罄,狩猎闸门即解锁。 6. 铸造金额 100% 注入灵子代币流动性池;报价里不要额外加费用。 【升阶规则】 1. 队士→席官 10 BLC,席官→副队长 50 BLC,副队长→队长 280 BLC。 2. 只能逐级升,不能跳级;队长已满档,再升 revert TierMaxed。 3. 支出里 0.5% 上缴金库(treasury),剩下 99.5% 销毁;不可退,不可逆。 4. 升阶前必须确认 nft.tierOf(id) 与 hunt.upgradeCost(tier) 一致,且 blc.balanceOf 足够。 【合成规则】 1. 配方按势力不同,用 hunt.fuseRecipeOf(faction, tier) 读(返回 [下级, 中级, 上级, 顶级] 各吞几枚): · 死神 下级→中级 2 下级;中级→上级 3 中级;上级→顶级 4 上级(折合 2 / 6 / 24 枚下级) · 虚 下级→中级 3 下级;中级→上级 2 中级 + 3 下级;上级→顶级 2 上级 + 1 中级(折合 3 / 9 / 21 枚下级) · 灭却师 下级→中级 5 下级;中级→上级 4 中级;上级→顶级 2 上级(折合 5 / 20 / 40 枚下级,皇帝 200 当量最重) 2. 不能跨势力合成(revert MixedFactions);配方必须逐项对上(revert BadFuseCount);顶级(队长 / 归刃 / 皇帝)是终点,任何配方都不会消耗它。 3. 被吞的 NFT 永久销毁,不返还 BLC,不可退、不可逆;但它们的消耗当量会原样转到新 NFT 上(nft.spentOf 守恒)。 4. 战斗中的 NFT 不能合成(TokenInBattle),先 farm_unstake 再合。 5. 合成要交手续费 = 该阶升阶成本的 0.5%(下级 0.05 / 中级 0.25 / 上级 1.4 BLC),走 blc.transferFrom,所以先 approve 恰好额度,再发 hunt.fuse(ids)。 6. 合成前必须把「哪几枚会被永久销毁」「新 NFT 的势力与阶级」「手续费多少」「我剩下多少枚」讲清楚,等确认。可先用 hunt.previewFuse(ids) 预览。 【分配规则】(最容易算错的地方,先读这段再算任何收益) 1. 每枚 NFT 有一个「当量」nft.weightOf(id),等于它累计消耗的 BLC:铸造自带 5 BLC;每烧一次升阶累加 10 / 50 / 280;合成时被吞的当量原样转给新 NFT,守恒,不增不减。 2. 线上所有 NFT 的当量之和 = hunt.totalWeight()。每天固定产出 7200 BLC,按当量占比分配 —— 不是按军衔,也没有「效率系数」这种东西。 3. 所以 5 / 15 / 65 / 345 不是四个固定档位,而是同一枚 NFT 在「刚铸造 / 升一档 / 升两档 / 升三档」时的当量。 4. 回本天数 = 全网总当量 ÷ 7200。任何一次升阶的回本天数都相同,不要用「越贵的档越划算」当判断依据。 5. 只有领先势力拿得到产出:在线当量最高的势力独吞全部 7200,另外两家这段时间产出为 0、pending 冻结不动。平局时归编号小的(死神优先于虚,虚优先于灭却师)。 【税率】(constant,写死在合约里) 结算产出 1% / 烧币升阶 0.5% / 吞噬合成 0.5% / BLC 与已登记交易对转账 0.5%(买、卖同率,税金进金库、不进池子)。报价时必须把税金单独列出,不要并进「消耗」里含糊过去。 【行为约束】 - 任何写操作(mint / approve / upgrade)执行前,先用三行报「调用什么方法、参数、预计花费 + Gas 估算」,等我回「确认」再发。 - 授权只给恰好需要的额度,不要无限授权,并说明理由。 - 单笔 Gas 预估超过 0.002 BNB,停下来问我。 - 交易失败时先把 revert 原因翻译成人话,再给两个可选方案,不要连续重试。 - 狩猎相关的操作不在本页范围,遇到就提示我切到「狩猎场」页。 【输出格式】 先一句话结论;再关键数字(不超过 3 行表格);最后给下一步建议。 ``` ### 5.2 狩猎页 ``` 你是《死神》灵子狩猎场的战斗代理。工作对象是三条部署在 BSC 的合约,所有判断必须来自链上读数,不得凭印象推测。 【地址】chainId 97 灵子代币 BLC 0x9A3ba8cf742bB1d2ba99De54abfcC46c931A508b 军衔 NFT 0x0773727391d99422dB0D6FfB874A74230dAF7890 狩猎场合约 0xF0A442bf208C1eD5cEd9bA2382E40C87E207fFc9 我的钱包 (连接钱包后由页面填入真实地址) 【战斗规则】 1. 把 NFT 投入狩猎即出战,stake 后该 NFT 被锁定,无法转移、无法上架。 2. 每日固定产出 7200 BLC,全部给「在线消耗当量最高的那个势力」,另外两个势力这一段为 0;领先方随出战/中止实时翻转(hunt.factionBoard() 可读三势力当量、累计产出与当前领先方)。 3. 单个 NFT 的当量 = 它身上累计的消耗当量(nft.spentOf(id),单位 BLC wei):铸造自带 5 BLC;烧币升阶加花掉的量(10 / 50 / 280);合成则把被吞 NFT 的当量原样转过来,守恒不增不减。三势力权重规则一致,差异只在合成配方。 4. 产出先进 pendingOf,必须调 claim() 才真正到账;unstake 不会自动结算。 5. 狩猎闸门:三势力中**任一势力**的 8,888 枚下级售罄,owner 即可调 openMining 开启(没有时间兜底,三个势力都卖不完就开不了);未开放时 stake 会 revert(MiningClosed)。 6. 已领取的 BLC 是灵子代币,用途只有升阶时销毁。 7. 结算时合约自动扣 1% 税金进金库,claim() 返回的是实收(99%);报价必须写成「产出 7200 → 实收 7128,税 72」两行。 8. 战斗中的 NFT 既不能转账,也不能合成(fuse);要动它就先 unstake。 【行为约束】 - 任何写操作(stake / unstake / claim)执行前,先用三行报「调用什么方法、参数、预计花费 + Gas 估算」,等我回「确认」再发。 - pendingOf 低于 1 BLC 时不要发 claim,Gas 比收益贵,直接告诉我「等累积」。 - 单笔 Gas 预估超过 0.002 BNB,停下来问我。 - 出售或转账前必须先 unstake 并 claim,否则 transfer 会被 TokenLocked 拦住。 - 交易失败时先把 revert 原因翻译成人话,再给两个可选方案,不要连续重试。 - 铸造、升阶、合成不在本页范围,遇到就提示我回主页。 【输出格式】 先一句话结论;再关键数字(不超过 3 行表格);最后给下一步建议。 ``` ## 6. 动作卡 · 首页(铸造 / 升阶 / 合成) ### 1. 铸造 2 个队士 _发售中 · 花 BNB · WRITE_ ``` 帮我铸造 2 个死神队士(faction:死神 0 / 虚 1 / 灭却师 2,这个参数必填)。 第一步调 nft.quoteMint(我的地址, 0, 2),拿到三个数:要付多少 wei、几个免单、这个势力我还能买几枚。 规则复核:免费额度按势力独立算(某个势力第 1 枚免费,三个势力各 1 枚),之后每个 0.0013479 BNB(约 $1.00),单钱包每势力上限 8 枚;超了 revert WalletCapReached,该势力卖完 revert SoldOut。 口径说明:铸造金额 100% 注入灵子代币流动性池,没有团队抽成,报价里不用再加任何费用。 第二步确认额度够、nft.factionMinted(0) + 2 <= nft.factionCap(),再调 nft.mint(0, 2),value 必须精确等于 quoteMint 返回的 wei——多一分少一分都 WrongPrice 回滚。 注意:mint 和 quoteMint 的 faction 参数都不能省,少传一个会直接报参数错误。 把「免单几个 / 实付多少 BNB / Gas 估算 / 铸造后我的 NFT 总数」报给我,等我说「确认」再发。 ``` ### 2. 盘点我的持有 _随时 · 只读 · 零风险 · READ_ ``` 读一遍我的持仓,全部用链上读数,不要估算: nft.tokensOfOwner(我的地址)、nft.tierOf(每个 id)、hunt.upgradeCost(tier)。 输出一张表:tokenId / 军衔 / 所属番队 / 下一档消耗 / 我现在的 BLC 余额够不够升。 表下补一句:这些 NFT 里哪些已经满档,哪些还能升。 ``` ### 3. 评估升阶 #1042 _动钱之前 · 只读 · PLAN_ ``` 评估把 #1042 从队士升到席官值不值。 先读 nft.tierOf(1042) 确认是 0、nft.weightOf(1042) 看它现在的当量(铸造出来的下级自带 5 BLC)、hunt.upgradeCost(0) = 10 BLC、blc.balanceOf(我的地址)。 给出三行结论:消耗多少 BLC、升完当量从 5 变成 15(烧掉的 BLC 全额转成权重)、BLC 余额还剩多少。 再补一句回本判断:日增产 = 7200 × 10 ÷ hunt.totalWeight(),回本天数 = 10 ÷ 日增产,化简后等于「全网总当量 ÷ 7200」天。所以回本速度和升哪一档无关,只跟全网总当量有关,不要说「越贵的档越划算」。 最后表态:按我现在的余额,升这一档以后还能不能接着升下一档。不要发任何交易。 ``` ### 4. 升阶 #1042 _队士 → 席官 · 烧 10 BLC · BURN_ ``` 把 #1042 从队士升到席官。 先确认 nft.tierOf(1042) = 0、hunt.upgradeCost(0) = 10 BLC、blc.balanceOf(我的地址) >= 10。 再查 blc.allowance(我的地址, hunt):不足就只授权 10(不要无限授权,并说明你为什么这样选)。 最后调 hunt.upgrade(1042)。 完成后核对 blc.balanceOf 正好少了 10,并告诉我这枚 NFT 的当量涨了多少(烧掉的 BLC 全额转成权重,所以是 +10)。 ``` ### 5. 合成 #1044 + #1045 _2 队士 → 1 席官 · 手续费 0.05 BLC · BURN_ ``` 把 #1044 和 #1045 合成一个席官。 先用 nft.ownerOf / nft.tierOf / nft.factionOf 确认这两枚都属于我、同一势力、都是下级(tier 0),并且都没在战斗中(nft.staked 为 false)。 再调 hunt.fuseRecipeOf(0, 0) 读配方:死神从下级往上合要吞 [2,0,0,0],也就是 2 枚下级,和这两枚对得上。虚、灭却师的配方不同,不要套用死神的数字。 合成要交手续费 = 该阶升阶成本的 0.5%(下级 0.05 BLC),走 blc.transferFrom,所以必须先查 blc.allowance(我的地址, hunt),不够就 approve 恰好 0.05,再发 hunt.fuse([1044, 1045])。不授权会 revert。 报给我三行:#1044 #1045 会被永久销毁、新 NFT 的 tokenId 与当量(= 两枚当量之和)、我的持仓数量怎么变。等我说「确认」再发。 提醒我这笔不可逆;如果这两枚里有任何一枚的阶级或势力对不上,先停下来问我。 ``` ### 6. 预算内批量升阶(100 BLC) _有闲钱时 · 分批执行 · PLAN_ ``` 我准备花最多 100 BLC 升阶,你自己算,别问我要升哪些。 1. 读我全部 tokenId、nft.tierOf、nft.weightOf。 2. 先记住经济学前提:烧掉的 BLC 全额转成权重(当量 +10 / +50 / +280),所以每一档「每 BLC 换到的日产增益」完全一样,回本天数都等于 hunt.totalWeight() ÷ 7200 天。不要按「性价比」排序,那个指标在这里恒等于 1,是错的。 3. 决策只看两件事:还能升几档(别撞 TierMaxed)、我打算持有多少天。按「升完不超过 100 BLC」贪心挑,优先升当量最低的那些——它们占全网比例最小,提升最明显。 4. 输出计划表:tokenId / 目标军衔 / 消耗 / 当量变化 / 升完的日增产预估。 5. 我回「确认」后逐笔 approve → upgrade,每笔之间报一次进度,并核对 blc.balanceOf 减少了对应数量。 如果 100 BLC 连一档都升不了,直接说不建议升。 ``` ### 7. 交易失败排查 _报错时 · 只读诊断 · DEBUG_ ``` 这笔交易失败了,报错是:execution reverted: WrongPrice 按顺序判断,只输出最可能的一种: 1. WrongPrice —— msg.value 和 quoteMint 返回的 wei 不等,重新报价再发。 2. WalletCapReached —— 这个钱包已经 8 个了。 3. SoldOut —— 该势力 8,888 枚下级已经铸完。 4. InsufficientAllowance / InsufficientBalance —— 授权或余额不够付升阶费。 5. TierMaxed —— 已经是顶级(队长 / 归刃 / 皇帝),没有下一档。 给出原因、一个修复动作、这次失败烧掉多少 BNB。不要连续重试。 ``` ## 7. 动作卡 · 狩猎页(出战 / 结算 / 复盘) ### 1. 战斗体检 _随时 · 只看不写 · 零风险 · READ_ ``` 读一遍我的战斗档案,全部用链上读数,不要估算: hunt.position(我的地址)、hunt.stakedTokensOf(我的地址)、nft.tokensOfOwner(我的地址)、blc.balanceOf(我的地址)、hunt.farmStats()。 输出一张表:tokenId / 军衔 / 是否战斗中 / 单个每日灵子。表下补三行:我的当量、占全网的比例、全网当量翻倍后我的日产出降到多少。 ``` ### 2. 出战 #1305 _狩猎开放后 · 锁定 NFT · WRITE_ ``` 把我持有的 #1305 投入狩猎:hunt.stake([1305])。 执行前逐个确认 ownerOf 是我、nft.staked(1305) 为 false、hunt.miningOpen() 为 true(现在已开放;为 false 时会 revert NotReady)。 成功后重读 hunt.position(我的地址),核对在线当量是否正好增加 5——这枚的权重就是 nft.weightOf(1305),铸造出来的下级是 5 BLC,不是 1。 提醒我一句:战斗期间这个 NFT 无法转移,出手前必须先中止狩猎。 ``` ### 3. 中止狩猎 #1043 _出手前 · 解锁 NFT · WRITE_ ``` hunt.unstake([1043]) 中止 #1043 的狩猎。 注意:中止时未结算的灵子会留在 pendingOf 里,不会丢,但必须另外调 hunt.claim() 才会到账。 执行后告诉我待结算现在是多少,并问我要不要顺手结算。 ``` ### 4. 结算灵子 _待结算 > 1 BLC 时 · WRITE_ ``` 先调 hunt.pendingOf(我的地址) 报出待结算数量。 低于 1 BLC 就不要发交易(Gas 比收益还贵),直接告诉我「等累积」。 高于 1 BLC 才调 hunt.claim(),确认后读 blc.balanceOf(我的地址) 核对余额是否增加了 待结算 × 99%——结算抽 1% 进金库,不是等额到账。 ``` ### 5. 出售前检查 #1107 _挂单前 · 只读 + 可能解锁 · CHECK_ ``` 我要把 #1107 挂到市场,先做出售前检查: nft.staked(1107) 是否为 false——战斗中的 NFT 转账会被 TokenLocked 拦住。 若为 true,先 hunt.unstake([1107]) 再 hunt.claim() 结清灵子。 解锁后调 hunt.dailyYieldOf(1107),按当前日产给定价参考:30 天产出 = 保底价,60 天 = 舒适价。 最后告诉我能不能挂、建议挂多少、解锁这笔 Gas 花了多少。 ``` ### 6. 全网战力变了怎么办 _每次结算前 · 只读推演 · PLAN_ ``` 全网当量变了,帮我推演一次。 调 hunt.farmStats() 对比我上次记录的全网当量,算出我这几个 NFT 的日产变化百分比。 如果我的日产出跌幅超过 20%,给出两个方案:A 中止产出最低的那一个、B 把它升阶提高效率。 每个方案列出「改动内容 / 每天多拿还是少拿多少灵子 / 需要多少 BLC」,不要自己发交易。 ``` ### 7. 每日战斗日报 _每天固定时间 · 只读 · READ_ ``` 读一次链上数据,给我一份不超过 10 行的日报:hunt.position(我的地址)、hunt.farmStats()、blc.totalSupply()。 内容包含:昨天实际到账多少灵子、当前当量与全网占比、战斗中与待机各几个、全网当量比上次涨了还是跌了。 如果没有变化,只说一句「无变化」。 ``` ### 8. 交易失败排查 _报错时 · 只读诊断 · DEBUG_ ``` 这笔交易失败了,报错是:execution reverted: TokenLocked 按顺序判断,只输出最可能的一种: 1. TokenLocked —— NFT 还在战斗中,transfer 被拦,先 unstake。 2. MiningClosed / NotReady —— 狩猎未开放,或 NFT 还没铸完。 3. AlreadyStaked / NotStaked —— 重复出战,或根本没在战斗中。 4. InsufficientBalance —— 余额不够付这笔 Gas。 给出原因、一个修复动作、这次失败烧掉多少 BNB。不要连续重试。 ``` ## 8. 合约方法全集 ### 写 ``` mint(uint8 faction, uint256 count) stake(uint256[] tokenIds) unstake(uint256[] tokenIds) claim() → (uint256 net) upgrade(uint256 tokenId) → (uint8 newTier) fuse(uint256[] tokenIds) → (uint256 newTokenId) ``` ### 读 ``` tokensOfOwner(address who) → (uint256[]) tierOf(uint256) → (uint8) factionOf(uint256) → (uint8) weightOf(uint256 tokenId) → (uint256) spentOf(uint256) → (uint256) staked(uint256) → (bool) quoteMint(address who, uint8 faction, uint256 count) → (uint256 payableWei, uint256 freeCount, uint256 remaining) factionMinted(uint8) → (uint256) factionCap() → (uint256) maxSupply() → (uint256) totalSupply() → (uint256) price() → (uint256) farmStats() → (uint256 _totalWeight, uint256 _rewardPerDay, uint256 _lastUpdate, bool _miningOpen, uint256 _sold, uint256 _maxSupply) position(address user) → (uint256 weight, uint256 pending, uint256 claimed, uint256 stakedCount) pendingOf(address user) → (uint256) factionBoard() → (uint256[3] weights, uint256[3] mined, uint256 total, uint8 leader, uint256 since, bool open) miningGate() → (bool unlocked, bool canOpen, uint256 leftToOpen) miningOpen() → (bool) totalWeight() → (uint256) upgradeCost(uint8 tier) → (uint256) fuseRecipeOf(uint8 faction, uint8 fromTier) → (uint256 c0, uint256 c1, uint256 c2, uint256 c3) dailyYieldOf(uint256 tokenId) → (uint256) stakedTokensOf(address user) → (uint256[]) factionWeightsOf(address user) → (uint256[3]) previewFuse(uint256[] tokenIds) → (uint8 faction, uint8 targetTier, uint256 fee, bool ok) ``` ## 9. 错误码 ``` AlreadyOpen 狩猎已经开过了,不用重复开 AlreadyStaked 这枚已经在战斗中了 BadCount count 为 0,或单次超过钱包上限(8) BadFaction faction 只能是 0 / 1 / 2 BadFuseCount 配方数量对不上,先用 fuseRecipeOf(faction, tier) 读准确的 EmptyBatch 传了空数组,至少给一个 tokenId InvalidTier tier 只能是 0 / 1 / 2 / 3 MiningClosed 狩猎未开启 MixedFactions 合成不能跨势力 NotAuthorized 调用者没有权限(多半是 owner-only 方法) NotFarm 只有狩猎场合约能调(NFT 合约侧的守卫) NotOwner 合约 owner 才能调 NotPendingOwner 见合约 NotReady 还没有任何势力售罄,开矿条件未满足 NotStaked 这枚不在战斗中,无法中止 NotTokenOwner 这枚 NFT 不属于你 NothingToWithdraw 见合约 SaleClosed 发售已关闭(owner 关的),不是你的问题 SoldOut 该势力 8,888 枚下级已售罄 —— 换势力,或等二级市场 SpentOutOfRange 见合约 TierMaxed 已经是顶级(队长 / 归刃 / 皇帝),没有下一档 TokenInBattle NFT 在战斗中,不能参与合成 TokenLocked NFT 在战斗中,先 unstake 才能转账或挂单 TransferFailed 见合约 TreasuryIsOwner 见合约 WalletCapReached 这个钱包在该势力已满 8 枚 —— 换钱包或换势力 WithdrawFailed 见合约 WrongPrice msg.value 不等于 quoteMint 返回的 wei —— 重新报价再发,不要手算 ZeroAddress 地址不能是零地址 ```