staking_team_overview.dart 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /// IDO 团队总览(对齐 Web `StakingTeamOverview`)
  2. class StakingTeamOverview {
  3. final int directNum;
  4. final int teamNum;
  5. final num teamPerformance;
  6. final num totalRevenue;
  7. final num lockTotal;
  8. final String nodeLevel;
  9. const StakingTeamOverview({
  10. this.directNum = 0,
  11. this.teamNum = 0,
  12. this.teamPerformance = 0,
  13. this.totalRevenue = 0,
  14. this.lockTotal = 0,
  15. this.nodeLevel = 'NORMAL',
  16. });
  17. factory StakingTeamOverview.fromJson(Map<String, dynamic> json) {
  18. num parseNum(dynamic v) {
  19. final n = num.tryParse('$v');
  20. return n ?? 0;
  21. }
  22. return StakingTeamOverview(
  23. directNum: int.tryParse('${json['directNum'] ?? 0}') ?? 0,
  24. teamNum: int.tryParse('${json['teamNum'] ?? 0}') ?? 0,
  25. teamPerformance: parseNum(json['teamPerformance']),
  26. totalRevenue: parseNum(json['totalRevenue']),
  27. lockTotal: parseNum(json['lockTotal']),
  28. nodeLevel: '${json['nodeLevel'] ?? 'NORMAL'}',
  29. );
  30. }
  31. }
  32. /// 直推成员(对齐 Web `StakingDirectMember`)
  33. class StakingDirectMember {
  34. final String directAddress;
  35. final String level;
  36. final num buyAmount;
  37. final num reward;
  38. const StakingDirectMember({
  39. this.directAddress = '',
  40. this.level = '',
  41. this.buyAmount = 0,
  42. this.reward = 0,
  43. });
  44. factory StakingDirectMember.fromJson(Map<String, dynamic> json) {
  45. num parseNum(dynamic v) {
  46. final n = num.tryParse('$v');
  47. return n ?? 0;
  48. }
  49. return StakingDirectMember(
  50. directAddress: '${json['directAddress'] ?? ''}',
  51. level: '${json['level'] ?? ''}',
  52. buyAmount: parseNum(json['buyAmount']),
  53. reward: parseNum(json['reward']),
  54. );
  55. }
  56. }
  57. class StakingDirectListPage {
  58. final List<StakingDirectMember> content;
  59. final int totalPages;
  60. final int pageNo;
  61. final bool hasMore;
  62. const StakingDirectListPage({
  63. required this.content,
  64. required this.totalPages,
  65. required this.pageNo,
  66. required this.hasMore,
  67. });
  68. }