SuperAPI AI 工具集

example-locker-dapp

通用与其它

查看项目

更新于 10-16 00:20

技能介绍

用途:本技能提供一个可运行的时间锁保险库 dApp 模板,把非屏蔽 NIGHT 代币锁入 Compact 合约直到指定 Unix 时间戳,到期后仅受益人(通过 witness 证明)可调用 release 将代币发往接收地址。部署者也无法提前取出。

主要能力:提供 Compact 合约(locker.compact)含 lockTokens、release 电路与 beneficiaryKey 见证;contract/ 编译脚本与 TypeScript witnesses;app/locker/ 的 Next.js 客户端 UI(连接、部署、锁定、释放、状态);lib/midnight.ts 钱包会话与修补后的 indexer provider;lib/locker.ts 负责 deploy、lockTokens、release 与 ledger 解码;public/zk/locker/ 存放从合约构建同步的 ZK 证明资源。

使用方式:复制 templates/locker-dapp/ 得到完整 Next.js 项目,安装 1AM 钱包后执行 npm install && npm run compact && npm run dev。合约编译用 npm run compact,资源同步用 npm run sync:assets。工作流为合约编译、创建连接会话、低级部署、lockTokens 锁定、轮询 indexer、到期后 release、UI 展示倒计时。

限制与注意:使用 blockTimeGte(unlockTime) 而非裸区块时间戳;时间戳必须用 Uint<64>;用 createUnprovenDeployTx + submitTxAsync 而非 deployContract()(在 preprod 会挂起);indexer provider 需打补丁修复 GraphQL offset: null;金额以 Stars 计(1 NIGHT = 1_000_000 Stars)用 BigInt;受益人公钥字节在锁定上链,受益人密钥须存在私有状态;单一活跃锁,需多锁则部署多个合约地址。其他平台、收费与效果资料暂未提供。