MatrixSignableKey.fromJson constructor
Implementation
MatrixSignableKey.fromJson(Map<String, Object?> json)
: _json = json,
userId = json['user_id'] as String,
keys = Map<String, String>.from(json['keys'] as Map<String, Object?>),
// we need to manually copy to ensure that our map is Map<String, Map<String, String>>
signatures = (() {
final orig = json.tryGetMap<String, Object?>('signatures');
final res = <String, Map<String, String>>{};
for (final entry
in (orig?.entries ?? <MapEntry<String, Object?>>[])) {
final deviceSigs = entry.value;
if (deviceSigs is Map<String, Object?>) {
for (final nestedEntry in deviceSigs.entries) {
final nestedValue = nestedEntry.value;
if (nestedValue is String) {
(res[entry.key] ??= <String, String>{})[nestedEntry.key] =
nestedValue;
}
}
}
}
return res;
}()),
unsigned = json.tryGetMap<String, Object?>('unsigned')?.copy();