Liquidity Provider Token 介绍与解析
什么是 LP Token?
当您在 UTXOSwap 上提供流动性时,将会获得作为流动性提供证明的 Liquidity Provider Token(以下简称 LP Token)。
每个流动性池创建时会同时生成对应的独立 LP Token。这些代币遵循 xUDT 标准,可以像其他 xUDT 代币一样进行转移。然而,由于 LP Token 在参数(args)结构上略大于普通 xUDT 代币,它会占用更多的 capacity。
虽然所有 LP Token 在 LP Token Info 中的 Symbol 名称相同,但不同流动性池的 LP Token 的 args
字段是不同的,使每个代币独一无二,因此这些 LP Token 实际上是不同的代币,无法进行合并。
需要注意的是,转移或销毁 LP Token 相当于转移或销毁用户在 UTXOSwap 上的流动性资产。
因此,虽然从技术上可以将 LP Token 当作普通的 xUDT Token 来操作,但我们并不推荐为 LP Token 提供与其他 xUDT Token 相同的操作界面。
如果确实需要提供这类操作功能,务必清晰地告知用户操作的潜在风险,以防止用户资产的损失。
LP Token 的格式
LP_token 的 Type Script 格式如下:
在 args
字段中,0x40000000_u32.to_le_bytes()
表示这是一个 xUDT 标志位,使用 owner
模式的 output_type
。该值占用 4 字节。因此,整个 LP Token 的 Type Script 的长度比标准 xUDT 的 65 字节多出 4 字节,总长为 69 字节。
LP Token 的创建
当创建流动性池时,会同时生成 LP Token 及 LP Token Info Cell,交易结构大致如下:
Pool Cell 中 data 对应的 pool info 的 molecule 如下:
Pool Cell 的 pool type script 格式如下:
LP Token 的解析
方案1: 通过 Pool Cell 进行解析
定位 Pool Cell:首先通过 LP Token 的
pool_type_hash
定位对应的 Pool Cell。解析 Pool Info:反序列化 Pool Cell 中的
data
部分,解析出asset_x_type_hash
和asset_y_type_hash
。查询资产符号:通过解析得到的类型哈希(type hash),查询 Asset X 和 Asset Y 的代币符号。
记录 LP Token:将 LP Token 标记为 Asset X/Asset Y LP,以反映 LP Token 代表的资产组合。
方案2: 通过 LP Token 的创建交易进行解析
追溯创建交易:找到创建 LP Token 和 LP Token Info Cell 的初始交易。
解析交易输出:从该交易中解析出涉及的 AssetX 和 AssetY 信息。
查询资产符号:同样,查询和记录 AssetX 和 AssetY 的代币符号。
记录 LP Token:将 LP Token 标记为 Asset X/Asset Y LP,以反映 LP Token 代表的资产组合。
方案 1 依赖于链上现存的数据结构,适用于动态查询,能够实时反映当前状态。这种方法对于需要实时数据的应用场景更为合适。
方案 2 则是一种静态分析方法,依赖于交易历史,适用于历史数据分析和在特定时间点的状态复现。
链上部署信息
主网部署信息:
测试网部署信息:
Last updated