mcpField
M
manifest

manifest

github.com/sendaifun开发13097 次安装14 周前更新
代码仓库

关于 manifest

Manifest 是用于基于 Manifest 无许可订单簿构建交易、路由、投资组合和前端集成的技能,指导开发者读取市场、执行订单操作、设置钱包流程并选择本地或全局流动性。

主要功能

  1. 01读取市场状态和订单簿
  2. 02通过 SDK 下单与撤单
  3. 03指导钱包适配器设置和席位认领
  4. 04区分本地与全局余额
  5. 05处理反向及其他订单类型

适用场景

  1. 01展示 Manifest 订单簿档位
  2. 02通过浏览器钱包下单
  3. 03在多个市场间共享资金
  4. 04提供持续的双边流动性

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sendaifun/skills --skill manifest

安装后在 Claude Code 中输入/manifest确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

docs/
troubleshooting.md
examples/global-liquidity/
global-order.ts
examples/read-market/
read-market.ts
examples/reverse-liquidity/
amm-style-batch.ts
examples/wallet-order/
place-order.ts
resources/
manifest-actions.md
manifest-sdk.md
templates/
manifest-setup.ts

详细介绍

Manifest DEX 集成指南

基于 Manifest 的免许可订单簿,构建交易、路由、投资组合和前端集成。

概述

在任务涉及以下内容时使用此技能:

  • 读取 Manifest 市场状态或订单簿
  • 通过 Manifest SDK 下单、取消订单、存入或提取资金
  • 在本地市场余额和全局余额之间进行选择
  • 处理封装器设置、席位认领和钱包适配器流程
  • 了解 Limit、PostOnly、ImmediateOrCancel、Global、Reverse 和 ReverseTight 订单类型

按需加载辅助参考资料:

  • resources/manifest-actions.md
  • resources/manifest-sdk.md
  • docs/troubleshooting.md
  • examples/read-market/read-market.ts
  • examples/wallet-order/place-order.ts
  • examples/global-liquidity/global-order.ts
  • examples/reverse-liquidity/amm-style-batch.ts
  • templates/manifest-setup.ts

说明

  1. 确定任务是只读市场访问,还是交易构建。
  2. 对于只读访问,优先使用 Market 读取或 ManifestClient.getClientReadOnly(...)。
  3. 对于交易构建,签名者控制的流程使用 getClientForMarket(...);钱包适配器流程则先使用 getSetupIxs(...),然后使用 getClientForMarketNoPrivateKey(...)。
  4. 确定流动性应为市场本地流动性(封装器余额加市场席位),还是全局流动性(全局账户加 OrderType.Global)。
  5. 如果任务涉及持续的双向流动性,应评估使用 Reverse 或 ReverseTight,而不是普通限价单。
  6. 对于 UI/订单簿相关工作,优先使用 bidsL2() 和 asksL2() 获取可直接用于展示的档位。
  7. 记录或实现清理行为时,应区分封装器级取消和核心级取消。cancelAllIx() 无法完全处理所有 Reverse/Global 边缘情况;cancelAllOnCoreIx() 是更全面的清理方式。
  8. 明确说明以下假设:
  • 集群
  • 市场地址
  • 交易者/签名者模型
  • 封装器/全局设置是否已完成

示例

基本用法

用户提出“显示 Manifest 市场的最佳买价和卖价”时

Agent 应:

  1. 使用 Market.loadFromAddress(...) 或 ManifestClient.getClientReadOnly(...)
  2. 读取 bestBidPrice() 和 bestAskPrice(),或 bidsL2() / asksL2()
  3. 返回价格,不引入签名或设置逻辑
钱包交易流程

用户提出“通过浏览器钱包下达 Manifest 订单”时

Agent 应:

  1. 调用 ManifestClient.getSetupIxs(...)
  2. 如果需要设置,先创建封装器状态和/或认领席位
  3. 然后使用 ManifestClient.getClientForMarketNoPrivateKey(...)
  4. 使用 client.placeOrderIx(...) 构建订单指令
全局流动性流程

用户提出“在多个 Manifest 市场使用同一笔资金”时

Agent 应:

  1. 说明仅靠市场本地余额无法满足此需求
  2. 使用 createGlobalAddTraderIx(...) 设置全局账户
  3. 通过 globalDepositIx(...) 存入资金
  4. 下达 OrderType.Global 订单
Reverse 订单

用户提出“提供成交后会翻转的持续流动性”时

Agent 应:

  1. 推荐使用 OrderType.Reverse 或 OrderType.ReverseTight
  2. 说明 Reverse 订单使用 spreadBps,而非 lastValidSlot
  3. 在需要更精确地控制较窄价差时使用 ReverseTight
  4. 提醒清理可能需要使用 cancelAllOnCoreIx(),而不只是封装器级取消

此技能中的可直接复制示例:

  • examples/read-market/read-market.ts
  • examples/wallet-order/place-order.ts
  • examples/global-liquidity/global-order.ts
  • examples/reverse-liquidity/amm-style-batch.ts

指南

  • 应该:在 wallet-adapter 交易流程前使用 getSetupIxs(...)。
  • 应该:在匿名检查或预设置检查流程中使用 getClientReadOnly(...)。
  • 应该:在面向 UI 的订单簿展示中使用 bidsL2() / asksL2()。
  • 应该:将市场本地账户逻辑与全局账户逻辑分开处理。
  • 应该:在相关情况下明确说明包装器状态、市场席位和全局账户。
  • 不应该:假设已连接的钱包已有包装器状态或市场席位。
  • 不应该:将 OrderType.Global 视为等同于普通市场本地订单。
  • 不应该:将 cancelAllIx() 当作总能彻底清理反向 / 全局边缘情况的方法。
  • 不应该:在示例中索要或嵌入私钥。

常见错误

错误:只读

原因:在只读客户端上调用了写入方法,或缺少付款方 / 包装器上下文。

解决方案:切换到 getClientForMarket(...),或完成 getSetupIxs(...) 流程,然后使用 getClientForMarketNoPrivateKey(...)。

错误:仍需设置

原因:尚未完成包装器创建或市场席位认领。

解决方案:在构建常规的基于包装器的交易操作前,运行 ManifestClient.getSetupIxs(...) 返回的指令。

错误:全局订单资金配置不正确

原因:交易者使用了 OrderType.Global,但没有为支持的代币注资全局账户。

解决方案:如有需要,运行 createGlobalAddTraderIx(...),然后运行 globalDepositIx(...),之后再下全局订单。

错误:取消全部后仍有反向 / 全局订单

原因:包装器级别的取消操作未能彻底覆盖所有核心级订单状态。

解决方案:需要彻底清理核心状态时,使用 cancelAllOnCoreIx()。

参考资料

  • 官方网站:https://manifest.trade
  • SDK 包:https://www.npmjs.com/package/@bonasa-tech/manifest-sdk
  • 源代码仓库:https://github.com/Bonasa-Tech/manifest
  • TypeScript 客户端文档:https://github.com/Bonasa-Tech/manifest/tree/main/client/ts

评论

支持 Markdown