跳转到内容
本页面的翻译由 LLM 生成。如果你发现翻译有误,请在 GitHub 上提交 issue 告诉我们。

Sai Core

Sai Core

  • perp,永续合约交易核心:
    • 管理市场、仓位、保证金和强平。
    • 计算含价格影响的成交价,应用交易、借贷、资金费用,更新盈亏。
    • 执行维持保证金、最高杠杆、非交易时段控制和资金支付等风险约束。
    • 主要入口包括开平仓、修改抵押资产、下单和执行、清算保证金不足的仓位。
    • 从 oracle 读取价格,收取和分配费用,与 vault 结算盈亏。
  • EVM 接口,PerpVaultEvmInterface.sol:
    • 让 MetaMask 和 EVM 用户与 Wasm 合约交互。
    • 处理代币转换和对 perp、vault 的跨 VM 调用。
    • 为 EVM 钱包提供充值、提现、开平仓等基本流程。
  • vault,流动性提供者资金池: 实现 SLP 金库。
    • 汇集 LP 流动性,承担交易者盈亏。
    • 按总资产发行和记录份额,支持充值和按周期提现。
    • 交易者盈利时支付,亏损时金库获利。
    • 与 vault-token-minter 协调份额铸造销毁,与 perp 协调结算转账。
  • oracle,价格源和权限:
    • 保存和提供各市场正式标记价格。
    • 控制更新者及更新条件。
    • 为 perp 的保证金检查、成交、资金费用和强平阈值提供价格。
  • vault-token-minter,份额的 Token Factory 桥接:
    • 通过 Nibiru Token Factory 控制份额铸造和销毁。
    • 检查白名单和所有权,防止未经授权的供应变更。
    • 由 vault 在充值时铸造、提现和赎回时销毁。
  1. 流动性生命周期
    1. LP 存入 vault,由 vault-token-minter 铸造份额。
    2. 提现进入队列,按周期执行并销毁份额。
  2. 交易生命周期
    1. 从 EVM 或 Wasm 请求 perp 开平仓或修改仓位。
    2. 获取 oracle 价格,计算价格影响和费用,检查保证金、杠杆。
    3. 更新仓位状态、累计资金及借贷费用、盈亏差值。
  3. 结算
    1. 交易者亏损成为 vault 利润。
    2. 盈利由 perp 从 vault 支付。
  4. 资金费用与价格对齐
    1. perp 定期根据标记价与指数价之差计算资金费用,多空据此支付或收取。
    2. 资金转移记入仓位,并随时间通过 vault 净额结算。
  5. 强平
    1. 保证金比例低于维持要求时,允许清算执行者关闭仓位。
    2. 计算含影响的平仓价,应用罚金和费用,与 vault 结算盈亏。
    3. 返还剩余抵押资产;坏账在配置上限内由 vault 分担。
  1. 所有权和角色限制价格更新、铸造权限、参数变更。
  2. perp 保证最高杠杆、非交易时段有效杠杆、最低维持保证金、费用边界。
  3. vault 执行周期规则和正确的份额账务。
  4. 跨 VM 调用旨在避免重入,并保持状态变更的原子记账。
  • perp: 市场、仓位规模、开仓价、抵押资产、累计资金及借贷费、待成交订单、参数。
  • vault: 总资产、总份额、账户份额余额、提现周期和队列。
  • oracle: 各市场价格及更新元数据。
  • vault-token-minter: 铸造、销毁权限和代币元数据。
  • 开多仓:
    • 调用 perp.open_position,获取价格、应用价格影响和费用、锁定抵押资产、记录仓位。
  • 盈利多仓平仓:
    • 按当前 oracle 价格及影响计算盈亏,扣费后由 vault 向用户支付利润。
  • LP 退出:
    • 提现请求进入周期队列,执行时通过 vault-token-minter 销毁份额并释放资产。
  • perp 管理交易和风险,vault 管理流动性及盈亏,oracle 提供价格,vault-token-minter 控制份额供应。EVM 外层接口支持钱包直接访问。

Sai 是使用 Rust 和 Solidity 合约的多 VM 应用,既利用 Wasm 的安全优势,也保留 EVM 的灵活性和熟悉的开发体验。