1 files changed, 21 insertions, 1 deletions
diff --git a/synapse/federation/units.py b/synapse/federation/units.py
index 025a79c022..d278475d9a 100644
--- a/synapse/federation/units.py
+++ b/synapse/federation/units.py
@@ -117,6 +117,26 @@ class Transaction(JsonEncodedObject):
"Require 'transaction_id' to construct a Transaction"
)
- kwargs["pdus"] = [p.get_pdu_json() for p in pdus]
+ kwargs["pdus"] = [
+ _mangle_pdu(p.get_pdu_json())
+ for p in pdus
+ ]
return Transaction(**kwargs)
+
+
+def _mangle_pdu(pdu_json):
+ pdu_json.pop("hashes", None)
+ pdu_json.pop("signatures", None)
+
+ pdu_json["auth_events"] = list(_strip_hashes(pdu_json["auth_events"]))
+ pdu_json["prev_events"] = list(_strip_hashes(pdu_json["prev_events"]))
+
+ return pdu_json
+
+
+def _strip_hashes(iterable):
+ return (
+ (e, {})
+ for e, hashes in iterable
+ )
|