apiGov.dart 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. import 'dart:async';
  2. import 'package:polkawallet_sdk/api/api.dart';
  3. import 'package:polkawallet_sdk/api/types/gov/genExternalLinksParams.dart';
  4. import 'package:polkawallet_sdk/api/types/gov/proposalInfoData.dart';
  5. import 'package:polkawallet_sdk/api/types/gov/referendumInfoData.dart';
  6. import 'package:polkawallet_sdk/api/types/gov/treasuryOverviewData.dart';
  7. import 'package:polkawallet_sdk/api/types/gov/treasuryTipData.dart';
  8. import 'package:polkawallet_sdk/service/gov.dart';
  9. class ApiGov {
  10. ApiGov(this.apiRoot, this.service);
  11. final PolkawalletApi apiRoot;
  12. final ServiceGov service;
  13. Future<List?> getDemocracyUnlocks(String address) async {
  14. final List? res = await service.getDemocracyUnlocks(address);
  15. return res;
  16. }
  17. Future<List?> getExternalLinks(GenExternalLinksParams params) async {
  18. final List? res = await service.getExternalLinks(params.toJson());
  19. return res;
  20. }
  21. Future<List?> getReferendumVoteConvictions() async {
  22. final List? res = await service.getReferendumVoteConvictions();
  23. return res;
  24. }
  25. Future<List<ReferendumInfo>> queryReferendums(String address) async {
  26. final List data = await service.queryReferendums(address);
  27. if (data.length > 0) {
  28. return data
  29. .map((e) => ReferendumInfo.fromJson(Map<String, dynamic>.of(e)))
  30. .toList();
  31. }
  32. return [];
  33. }
  34. Future<List<ProposalInfoData>> queryProposals() async {
  35. final List data =
  36. await (service.queryProposals() as FutureOr<List<dynamic>>);
  37. return data
  38. .map((e) => ProposalInfoData.fromJson(Map<String, dynamic>.of(e)))
  39. .toList();
  40. }
  41. Future<ProposalInfoData?> queryNextExternal() async {
  42. final Map? data = await service.queryNextExternal();
  43. return data == null
  44. ? null
  45. : ProposalInfoData.fromJson(Map<String, dynamic>.from(data));
  46. }
  47. Future<Map?> queryTreasuryProposal(String id) async {
  48. final Map? data = await service.queryTreasuryProposal(id);
  49. return data;
  50. }
  51. Future<Map?> queryCouncilVotes() async {
  52. final Map? votes = await service.queryCouncilVotes();
  53. return votes;
  54. }
  55. Future<Map?> queryUserCouncilVote(String address) async {
  56. final Map? votes = await service.queryUserCouncilVote(address);
  57. return votes;
  58. }
  59. Future<Map?> queryCouncilInfo() async {
  60. final Map? info = await service.queryCouncilInfo();
  61. return info;
  62. }
  63. Future<List<CouncilMotionData>> queryCouncilMotions() async {
  64. final List? data = await service.queryCouncilMotions();
  65. if (data != null) {
  66. return data
  67. .map((e) => CouncilMotionData.fromJson(Map<String, dynamic>.of(e)))
  68. .toList();
  69. }
  70. return [];
  71. }
  72. Future<TreasuryOverviewData> queryTreasuryOverview() async {
  73. final Map? data = await service.queryTreasuryOverview();
  74. if (data != null) {
  75. return TreasuryOverviewData.fromJson(
  76. Map<String, dynamic>.of(data as Map<String, dynamic>));
  77. }
  78. return TreasuryOverviewData();
  79. }
  80. Future<List<TreasuryTipData>> queryTreasuryTips() async {
  81. final List? data = await service.queryTreasuryTips();
  82. if (data != null) {
  83. return data
  84. .map((e) => TreasuryTipData.fromJson(Map<String, dynamic>.of(e)))
  85. .toList();
  86. }
  87. return [];
  88. }
  89. Future<List?> getDemocracyLocks(String address) async {
  90. final List? res = await service.queryDemocracyLocks(address);
  91. return res;
  92. }
  93. }