writeKeysForAddr method Null safety

Future<bool> writeKeysForAddr(
  1. Uint8List dscBytes,
  2. Uint8List pskBytes,
  3. String addr
)

Implementation

Future<bool> writeKeysForAddr(Uint8List dscBytes, Uint8List pskBytes, String addr) async {
  // Write to GetStorage if Debug
  if (isDebugMode || _enabledStorage) {
    try {
      _tempStorage.write(_dscKeyForDid(addr), _encodeHexString(dscBytes));
      _tempStorage.write(_pskKeyForDid(addr), _encodeHexString(pskBytes));
    } catch (e) {
      Log.warn("Failed to write AES Keys to GetStorage $e");
    }
    return true;
  }

  // store the two keys in keychain
  var keychainPuts = [
    FlutterKeychain.put(key: _dscKeyForDid(addr), value: _encodeHexString(dscBytes)),
    FlutterKeychain.put(key: _pskKeyForDid(addr), value: _encodeHexString(pskBytes)),
  ];
  await Future.wait(keychainPuts, eagerError: true, cleanUp: (dynamic error) {
    Log.warn("Failed to write AES keys to keychain: $error");
    if (_enabledStorage) {
      try {
        _tempStorage.write(_dscKeyForDid(addr), _encodeHexString(dscBytes));
        _tempStorage.write(_pskKeyForDid(addr), _encodeHexString(pskBytes));
      } catch (e) {
        Log.warn("Failed to write DSC, and PSK Keys to GetStorage after trying keychain $e");
      }
    }
  });
  return false;
}