mcpField
K
kiosk

kiosk

github.com/mystenlabs开发19115 次安装今天更新
代码仓库

关于 kiosk

kiosk 是面向 Sui Kiosk 开发与代码审查的技能,按任务路由到核心操作或扩展参考。内容覆盖资产交易、TransferPolicy 和应用权限,并强调依据官方文档核实 API。

主要功能

  1. 01Kiosk 创建与资产管理
  2. 02上架、购买及 TransferPolicy 流程
  3. 03资产借用与销售款提取
  4. 04Kiosk Apps 扩展和权限管理
  5. 05按任务加载对应参考文件

适用场景

  1. 01实现 Kiosk 商品上架与购买
  2. 02排查 TransferPolicy 交易问题
  3. 03构建带权限的 Kiosk 扩展
  4. 04审查 Kiosk 代码及资产状态

MCP 相关

该技能建议在可用时查询 Sui 文档 MCP 服务,以核实信息并补充参考文件未涵盖的细节。

安装

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

$npx skills add https://github.com/mystenlabs/skills --skill kiosk

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

包含的文件

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

apps.md
core.md
evals/
evals.json

详细介绍

Sui Kiosk 技能

**MCP 工具:**如果你的环境支持,请同时查询 Sui 文档 MCP 服务(https://sui.mcp.kapa.ai),以获取最新答案。使用它进行验证,并查找这些参考文件未涵盖的细节。

**来源限制:**此技能中的所有信息均仅来源于 docs.sui.io/standards/kiosk。扩展或更新此技能时,只能从该来源获取信息。请勿使用第三方博客、教程或非官方文档。

Kiosk 是 Sui 上面向商业应用的去中心化系统,提供用于存储资产的共享对象,并内置交易功能,包括拍卖等自定义交易机制。此技能涵盖 Kiosk 的创建、资产管理、上架和购买流程、TransferPolicy 强制执行、借用模式以及 Kiosk Apps 扩展 API。常见错误包括:忘记必须先有 TransferPolicy 才能交易物品、尝试可变借用已上架的物品,以及误解 Kiosk Apps 的权限位图。

此技能会将你引导至针对具体任务的参考文件。只加载与当前任务相关的文件。

此技能中的所有模式均源自: https://docs.sui.io/standards/kiosk

如果不确定某个 API,请先获取相关页面,再作答。 请勿猜测,也不要根据其他协议或 NFT 标准进行推断。


参考文件

core -- Kiosk 核心操作

路径:core.md **加载时机:**用户需要创建 Kiosk、放入或取出资产、上架或下架物品、购买物品、了解 TransferPolicy 和购买流程、了解资产状态(PLACED、LOCKED、LISTED、LISTED EXCLUSIVELY)、借用资产或提取销售收益时。 **涵盖内容:**创建 Kiosk、KioskOwnerCap、放入和取出物品、锁定物品、上架和下架、包含 TransferRequest 的购买流程、TransferPolicy、资产状态、不可变和可变借用、borrow_val 热土豆模式、访问控制、提取。

apps -- Kiosk Apps 和扩展

路径:apps.md **加载时机:**用户需要使用动态字段构建基础 Kiosk 应用、使用 kiosk_extension 模块构建权限应用、了解权限位图、管理应用生命周期(安装、启用、禁用、移除)或使用应用隔离存储时。 **涵盖内容:**通过 UID 动态字段构建基础应用、uid_mut_as_owner、Kiosk Name 应用示例、通过 kiosk_extension 构建权限应用、应用生命周期、权限位图(place、lock)、受保护的函数、权限检查、应用存储(Bag 类型隔离存储)。


路由指南

任务加载
创建 Kioskcore
放入、取出或锁定物品core
上架或下架物品core
购买物品并满足 TransferPolicy 要求core
了解资产状态core
借用资产(不可变、可变、适用于 PTB)core
提取销售收益core
使用动态字段构建基础 Kiosk 应用apps
构建权限 Kiosk 扩展apps
了解权限位图apps
管理应用生命周期(安装、启用、禁用、移除)apps
使用应用隔离存储apps
完整的 Kiosk 集成所有参考文件
审查 Kiosk 代码所有参考文件

技能内容

核心概念
  • Kiosk。 一种共享对象,用于存储资产并内置交易功能。通过 kiosk::default 创建,该函数会共享 Kiosk,并将 KioskOwnerCap 转移给创建者。

  • KioskOwnerCap。 授予 Kiosk 所有权的能力凭证。只有持有该凭证的所有者才能在 Kiosk 中放置、取出、上架、借用或修改资产。

  • TransferPolicy。 与资产类型 T 关联的共享对象,用于定义该类型的所有交易必须满足的规则。若没有关联的 TransferPolicy,则无法交易类型为 T 的物品(但仍可存储)。策略变更会即时生效,并适用于平台上的所有交易。

  • TransferRequest。 kiosk::purchase 返回的一种热土豆,必须在交易完成前满足所有 TransferPolicy 条款,才能将其处理完毕。

  • 资产状态。 Kiosk 中的物品有四种状态:PLACED(可取出、可借用、可上架)、LOCKED(不可取出,但可进行可变借用,也可上架)、LISTED(仅可进行不可变借用,不可修改)和 LISTED EXCLUSIVELY(由扩展通过 kiosk::list_with_purchase_cap 管理)。

  • MIST。 SUI 的最小单位。1 SUI = 10^9 MIST。上架价格以 MIST 为单位指定。

规则
  1. 在交易类型 T 的物品之前,必须先创建 TransferPolicy。 若没有 TransferPolicy,kiosk::purchase 将无法完成。没有 TransferPolicy 时,仍可存储(放置)物品。
  2. 已上架的物品不可进行可变借用。 对于 LISTED 状态的物品,只能进行不可变借用。
  3. 已锁定的物品不可取出。 通过 kiosk::lock 放置的物品需要关联的 TransferPolicy,且无法从 Kiosk 中取出,只能上架并出售。
  4. 必须通过 return_val 返回 borrow_val 热土豆。 未能返回会导致交易中止。
  5. 只有持有 KioskOwnerCap 的用户才能修改 Kiosk 内容。 所有放置、取出、上架、借用和提取操作都需要该凭证。
常见错误
  • 忘记创建 TransferPolicy。 尝试购买未关联 TransferPolicy 的物品类型会导致交易失败。请确保在交易前创建并共享 TransferPolicy。
  • 对已上架的物品进行可变借用。 LISTED 状态的物品只支持不可变借用。尝试对已上架物品调用 borrow_mut 会失败。
  • 混淆 PLACED 和 LOCKED 状态。 PLACED 状态的物品可通过 kiosk::take 取出;LOCKED 状态的物品则不可取出。只有在希望确保物品只能通过出售离开 Kiosk 时,才使用 kiosk::lock。
  • 未满足所有 TransferPolicy 条款。 kiosk::purchase 返回的 TransferRequest 必须满足 TransferPolicy 中的每条规则。遗漏任何一条都会导致交易中止。
  • 上架价格使用 SUI 而非 MIST。 kiosk::list 要求价格以 MIST 为单位(1 SUI = 10^9 MIST)。传入价格 1 表示 1 MIST,而非 1 SUI。

评论

支持 Markdown