SUDT 代币的中心化平台充提币方案

背景介绍

Neuron 钱包的 SUDT 转账设计:若接收地址 anyone-can-pay 短地址,则采用 acp 方案 转账;若接收地址是 secp256k1/blake160 的短地址,则采用 cheque 方案 转账。(这种方式可作为所有支持 SUDT 钱包的范式)

这个做法同时解决了 SUDT 的普通转账和向交易所充值的不同需求。然而,这里有一个前提要求,即转账者的钱包里至少要有 142(创建找零的 ACP cell) + 162(创建 cheque cell) 个 CKB + 交易手续费。

用户该通过什么渠道来获取这些 CKB?这里就需要按用户类别来分析了。

  • 对于像 Neuron 钱包用户这样关心和拥有 CKB 和 SUDT 的 Nervos 生态用户来说,钱包可以引导他们在 CKB 不足时通过其他途径来补充 CKB。
  • 对于只关注与业务相关的 SUDT,但并不需要关心 CKB 的特定平台用户来说,为了确保他们能够始终流畅地完成 SUDT 的转账和充提币操作,就需要在从这些用户的入口处一次性为用户提供足够的 CKB 以支持用户无感知地流转 SUDT 代币。

具体方案

mercury 为中心化平台(交易所/特定平台)的充提币提供接口服务。

SUDT 充值

中心化平台为每个用户生成一个唯一的 secp256k1/blake160 短地址,用户使用钱包(Neuron、比特派等钱包,或特定的平台钱包)向该地址转账时,会自动采用 cheque 方案。

mercury 已经支持了构造 cheque 转账交易的接口,可以为尚未集成 cheque 转账方案的钱包提供便捷的支持。

SUDT 提币

当用户从中心化平台提取 SUDT 时,平台可查询该用户提供的地址是否已创建 acp 账户。若有则直接发起转账;若没有,则引导用户首次付费创建账户,然后发起转账。对于特定平台,可以在首次付费创建账户时,一次性为用户提供足够的 CKB 即可。

mercury 支持了创建账户和构造转账的接口,平台可以轻松地集成这个方案。

3 Likes