能源市场
能源市场是一个 订单簿去中心化市场,玩家可以用 SES 买卖能源。市场由 EnergyMarket.sol 合约驱动。
卖能源(创建订单)
操作
createOrder(energyAmount, sesPrice)
- 输入你想出售的能源数量
- 输入你希望的总价(SES)
- 确认交易
能源锁定
创建订单时,合约会立即锁定你的能源(标记为 energyReserved),防止你在订单有效期内花掉这些能源。
取消订单
cancelOrder(orderId)
- 需要订单创建至少 3 秒 后才能取消(防止同区块抢跑)
- 取消后能源解锁
买能源(吃单)
操作
fillOrder(orderId, energyAmount, maxUnitPrice)
- 浏览当前活跃的卖单列表
- 选择一个订单
- 输入你愿意接受的最高价格
- 确认交易
费用
协议收取 1% 的 SES 交易费(从卖家收入中扣除):
买家支付 = 订单价格
卖家实收 = 订单价格 × 99%
协议费 = 订单价格 × 1%(累计在合约中,可由管理员提取)
市场参数
| 参数 | 值 |
|---|---|
| 协议费率 | 1%(买方支付) |
| 订单最小年龄 | 3 秒(可取消/可吃单) |
| 订单状态 | active / inactive(取消或成交后转为 inactive) |
交易流程示例
Alice 出售能源
- Alice 下卖单:
createOrder(10000, 100 SES)— 出售 1 万能源,总价 100 SES - 合约锁定 Alice 的 1 万能源
Bob 购买能源
- Bob 看到 Alice 的订单
- 执行
fillOrder(orderId, 100)— 购买 100 能量 - Alice 获得 99 SES(扣除 1% 手续费)
- 1 SES 累积为协议费
策略建议
| 场景 | 建议 |
|---|---|
| 急需能源战斗 | 接受最低价格的卖单 |
| 不急用 | 设置限价单,等待价格合适 |
| SES 价格上涨时 | 出售能源换 SES 获利 |
| 能源富余时 | 挂卖单赚 SES |
推荐下一步:每日铸造 →