funding_rate.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /// 当前资金费率 + 下次结算时间
  2. class FundingRateCurrent {
  3. /// 资金费率(小数,如 0.00005 表示 0.005%)
  4. final double rate;
  5. /// 下次结算时间(毫秒时间戳,服务端按 8 小时整点返回)
  6. final int refreshTime;
  7. const FundingRateCurrent({required this.rate, required this.refreshTime});
  8. factory FundingRateCurrent.fromJson(Map<String, dynamic> json) {
  9. return FundingRateCurrent(
  10. rate: (json['fundingRate'] as num?)?.toDouble() ?? 0,
  11. refreshTime: (json['refreshTime'] as num?)?.toInt() ?? 0,
  12. );
  13. }
  14. }
  15. /// 资金费率历史记录
  16. class FundingRateHistoryItem {
  17. final DateTime fundingTime;
  18. /// 资金费率(小数,如 0.00005 表示 0.005%)
  19. final double rate;
  20. const FundingRateHistoryItem({
  21. required this.fundingTime,
  22. required this.rate,
  23. });
  24. factory FundingRateHistoryItem.fromJson(Map<String, dynamic> json) {
  25. final raw = json['fundingTime'];
  26. DateTime time;
  27. if (raw is int) {
  28. time = DateTime.fromMillisecondsSinceEpoch(raw);
  29. } else if (raw is String) {
  30. time = DateTime.tryParse(raw) ?? DateTime.fromMillisecondsSinceEpoch(0);
  31. } else {
  32. time = DateTime.fromMillisecondsSinceEpoch(0);
  33. }
  34. return FundingRateHistoryItem(
  35. fundingTime: time,
  36. rate: (json['fundingRate'] as num?)?.toDouble() ?? 0,
  37. );
  38. }
  39. }