logo美加墨世界杯

公平机制

合约如何保证每个参与者被公平对待 — 不靠承诺,靠代码。

📐

价格曲线写死在合约

每支球队的价格由 5 段递增曲线决定(basePrice + stepPrice × 段位倍率)。部署后无人能修改,所有人同一条曲线、同一个价格。

// 段位: 0-100 ×1, 100-300 ×3, 300-600 ×8, 600-850 ×18, 850+ ×35
🔒

资金分配比例硬编码

每笔买入的代币去向在合约常量中写死,任何人(包括开发者)都无法更改。

TEAM_REWARD = 40%  // 同队持有者分红
CHAMPION   = 35%  // 冠军奖池
LEGACY     = 15%  // 该队遗产池
BURN       = 10%  // 永久销毁
⚖️

淘汰由预言机裁决

球队是否出局不由任何人主观决定,而是由链上预言机合约(IWorldCupResolver)根据真实赛果写入。合约只读取预言机数据,不做人为判断。

oracle.resolveWinner() → 链上裁决
syncEliminatedTeam(teamId) → 任何人可触发
🌐

淘汰触发完全开放

syncEliminatedTeam 是 public 函数,没有权限限制。任何钱包都可以调用,不存在「谁有权淘汰谁」的问题。先到先得,链上可查。

function syncEliminatedTeam(uint8 teamId) external
// 无 onlyOwner / onlyAdmin 修饰符
🎲

为什么有 Other 池

世界杯只有 32 强能进决赛圈,但合约一次性上架 48 个名额:前 42 个对应明确的国家队,剩下 6 个槽位(teamId 42–47)共享一个 oracle 索引,叫做「Other 池」。它的作用是兜底 — 比赛是动态的,谁能进决赛圈在合约部署时还不一定,剩下的 6 个槽就是给真黑马、给冷门、给那些「我赌一个没人看好的」的人留的位子。Other 池起始价是标准队的 30%、单 slot 权重也只有 1(标准队是 10),所以它便宜、爆冷收益空间大,但全军覆没的概率也更高。要么早早出局,要么爆冷封神。

KNOWN_TEAMS = 42         // 明牌队
TOTAL_TEAMS = 48         // 含 Other
OTHER_ORACLE_INDEX = 42  // 6 个槽共享
OTHER_WEIGHT = 1         // 标准队 = 10
🏆

冠军奖池自动结算

比赛结束后,冠军奖池按持有冠军队份额的权重自动分配。合约计算,无人工干预。

finalChampionTokenPerWeight = championTokenPool × 1e18 / winnerWeight
// 按你持有的冠军队份额比例领取
🔥

销毁不可逆

每笔买入的 10% 代币直接转入黑洞地址 0x...dEaD,永久退出流通。链上可验证。

token.safeTransfer(0x000...dEaD, toBurn)
📊

所有数据链上可查

每支球队的已售份额、遗产池余额、冠军池总额、BNB 奖池 — 全部是 public view 函数,任何人随时可以读取验证。

teamInfo(teamId) → sold, shares, legacyPool
gameStats() → aliveWeight, championPool, bnbPool

Vault 合约地址:0x08e55BdfBe7b3a0b85EB81f60b5B216c8dc1B5C0