apiWalletConnect.dart 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import 'package:polkawallet_sdk/api/api.dart';
  2. import 'package:polkawallet_sdk/api/types/walletConnect/pairingData.dart';
  3. import 'package:polkawallet_sdk/api/types/walletConnect/payloadData.dart';
  4. import 'package:polkawallet_sdk/service/walletConnect.dart';
  5. class ApiWalletConnect {
  6. ApiWalletConnect(this.apiRoot, this.service);
  7. final PolkawalletApi apiRoot;
  8. final ServiceWalletConnect service;
  9. void initClient(
  10. Function(WCPairingData) onPairing,
  11. Function(WCPairedData) onPaired,
  12. Function(WCPayloadData) onPayload,
  13. ) {
  14. service.initClient((Map proposal) {
  15. onPairing(WCPairingData.fromJson(proposal));
  16. }, (Map session) {
  17. onPaired(WCPairedData.fromJson(session));
  18. }, (Map payload) {
  19. onPayload(WCPayloadData.fromJson(payload));
  20. });
  21. }
  22. Future<Map?> connect(String uri) async {
  23. final Map? res = await service.connect(uri);
  24. return res;
  25. }
  26. Future<Map?> disconnect(Map params) async {
  27. return await service.disconnect(params);
  28. }
  29. Future<Map?> approvePairing(WCPairingData proposal, String address) async {
  30. final Map? res = await service.approvePairing(proposal.toJson(), address);
  31. return res;
  32. }
  33. Future<Map?> rejectPairing(WCPairingData proposal) async {
  34. final Map? res = await service.rejectPairing(proposal.toJson());
  35. return res;
  36. }
  37. Future<Map?> signPayload(WCPayloadData payload, String password) async {
  38. return await service.signPayload(payload.toJson(), password);
  39. }
  40. Future<Map?> payloadRespond(WCPayloadData payload,
  41. {Map? response, Map? error}) async {
  42. final Map? res = await service.payloadRespond({
  43. 'topic': payload.topic,
  44. 'response': {
  45. 'id': payload.payload!.id,
  46. 'jsonrpc': '2.0',
  47. 'result': response,
  48. 'error': error,
  49. }
  50. });
  51. return res;
  52. }
  53. }