storeEvent method

  1. @override
Future<bool> storeEvent(
  1. String encodedEvent
)
override

Implementation

@override
Future<bool> storeEvent(String encodedEvent) async {
  checkInitialized();

  try {
    final decodedEvent = jsonDecode(encodedEvent) as Map<String, dynamic>;
    final eventId = decodedEvent['eventId']! as int;

    final index = getStoredEvents().indexWhere((e) {
      final decodedEvent = jsonDecode(e) as Map<String, dynamic>;
      return decodedEvent['eventId'] == eventId;
    });
    if (index < 0) {
      final newList = List<String>.from([...getStoredEvents(), encodedEvent]);
      await storage.set(_key, {_key: newList});
      debugPrint(
        '[WalletKit] ✅ [Events] tracker: storeEvent. '
        '${_storedValue?.length ?? 0} events stored',
      );
      return true;
    }
  } catch (e) {
    debugPrint('[WalletKit] ❌ [Events] tracker: storeEvent, $_key, $e');
    rethrow;
  }
  return false;
}