为 showbuzzv3 应用添加了 BTC 链红包支持,在不改变现有 MVC 红包逻辑的基础上,为 BTC 提供了特殊的限制和验证。
- 添加了 BTC 链配置,包括图标、精度等信息
- 支持 8 位精度,聪作为最小单位,BTC 作为主单位
-
添加了 BTC 红包特殊常量:
BTC_MIN_TOTAL_SATS = 1500(0.000015 BTC)BTC_MAX_TOTAL_SATS = 10000000(0.1 BTC)BTC_MIN_PER_PACKET_SATS = 500(0.000005 BTC)BTC_MAX_PER_PACKET_SATS = 100000(0.001 BTC)BTC_MIN_QUANTITY = 3BTC_MAX_QUANTITY = 100
-
默认值设置:
- BTC 红包:数量 3 个,总金额 0.00003 BTC,单位 BTC
- 其他链:保持原有默认值
-
验证逻辑:
validateQuantity(): BTC 链限制 3-100 个红包validateAmount(): 实现 BTC 总金额和平均金额限制,带用户友好提示reset(): 根据当前链设置不同默认值
-
费率验证:
- BTC 链的费率必须在 0.3-3 sat/vB 范围内
- 超出范围时显示相应错误提示
- 移除了对 BTC 链的发红包限制
- 添加了 BTC 链到可选链列表
- 更新了单位切换逻辑:
- BTC 链:BTC ↔ Sats
- 其他链:Space ↔ Sats
- 添加了链切换监听器,自动更新单位和默认值
- 添加了 BTC 红包相关的错误提示信息:
- 费率过高/过低提示
- 总金额超限提示
- 平均金额超限提示
- 红包数量: 3 个 (最少 3 个,最多 100 个)
- 总金额: 0.00003 BTC (3000 聪)
- 金额范围: 0.000015-0.1 BTC (1500-10000000 聪)
- 单个红包: 0.000005-0.001 BTC (500-100000 聪)
- 允许范围: 0.3-3 sat/vB
- 超出提示: 显示友好的错误信息引导用户调整
- 自动根据当前链设置适当的默认值
- 实时验证并自动修正超限输入
- 切换链时自动更新界面和表单
- 保持与 Space 红包一样的记忆功能
- 链感知: 所有逻辑都基于
chainStore.state.currentChain判断当前链 - 单位转换: 正确处理 BTC、聪和 Sats 之间的转换关系
- 向后兼容: 完全保持现有 MVC/Space 红包的功能和逻辑
- 用户友好: 提供清晰的错误提示和自动修正
- 状态管理: 正确处理表单状态重置和默认值设置
- 费率验证依赖于现有的
chainStore.btcFeeRate()方法 - 矿工费计算逻辑需要在
giveRedPacket函数中实现 - BTC 红包的实际发送逻辑需要与后端 API 协调
- 保持了与现有红包系统的完全兼容性