remoteRF-server 1.1.0.dev45__py3-none-any.whl → 1.1.0.dev46__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -687,9 +687,21 @@ def _sync_contract(party: dict, peer: str, directory: list[dict]) -> str:
687
687
  return store.show(party["contract_id"], 1)["state"]
688
688
 
689
689
 
690
+ def _event_order(signed_event: str) -> tuple:
691
+ """(occurred_at, actor, actor_sequence) from the unverified payload -- for
692
+ ordering only; the store verifies every event before it counts."""
693
+ try:
694
+ payload = signed_event.split(".")[1]
695
+ claims = json.loads(base64.urlsafe_b64decode(payload + "=" * (-len(payload) % 4)))
696
+ return (int(claims["occurred_at"]), str(claims["iss"]), int(claims["actor_sequence"]))
697
+ except Exception: # noqa: BLE001 - malformed: let the store reject it, last
698
+ return (2**62, "", 0)
699
+
700
+
690
701
  def _import(store: ContractStore, terms: dict, events: list) -> str:
691
702
  """Import a directory entry; a contract already revoked here (an earlier
692
703
  cluster between the same labs) is simply reported as such."""
704
+ events = sorted(events, key=_event_order) # the relay's order is not the actors' order
693
705
  try:
694
706
  store.import_bundle(canonical_json({"protocol_version": "2", "terms": terms, "events": events}))
695
707
  except ContractError as exc:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoteRF-server
3
- Version: 1.1.0.dev45
3
+ Version: 1.1.0.dev46
4
4
  Summary: RemoteRF server-side control package
5
5
  License: GPL-3.0-or-later
6
6
  Classifier: Programming Language :: Python :: 3
@@ -71,7 +71,7 @@ remoteRF_server/server/deployment/capabilities.py,sha256=20RxmGG03VoQQZnV3jGhc-3
71
71
  remoteRF_server/server/federation/__init__.py,sha256=auqdGiGnEGIKQiXX2jFVt8iWmfyZ-V3w4dUmtWDKAZE,735
72
72
  remoteRF_server/server/federation/admin.py,sha256=t3F17FIytekzclPICmaFJEA4-F5OuWcDx3rgmFga17A,9187
73
73
  remoteRF_server/server/federation/cli.py,sha256=TIPfOdYxYDok7pR5g6COf_jUlcTFcj9o728kkLKcDqs,16351
74
- remoteRF_server/server/federation/cluster.py,sha256=7hFtUPJ6r3ldar2ExaoVKRCguWfnH4yZFKYDG4yyHPo,37828
74
+ remoteRF_server/server/federation/cluster.py,sha256=LunLUF5tk-kOjKV3DIxPTaeGow2zvOZsae2fs1XBSQE,38469
75
75
  remoteRF_server/server/federation/contracts.py,sha256=NYh7lb_9etJHFfzXwevjC4HfSBUypLxg5xGeBgydLF4,29305
76
76
  remoteRF_server/server/federation/destination.py,sha256=XawmGCiVbL_MfNNn8xwV9_bYxUDW1L7efCpL11K2JAc,35909
77
77
  remoteRF_server/server/federation/devices.py,sha256=n5MvnD0UZyl4sFpiekG9ProanWXTYizYq6YchCflLgY,18061
@@ -90,9 +90,9 @@ remoteRF_server/tools/gen_certs.py,sha256=Vbyu8JjRu__UYPVmyCRXt5SOw0Za1HV7g1md3G
90
90
  remoteRF_server/tools/gist_status.py,sha256=SFv2iQgQrIKT9gxKrU-_Dr7S0p0rE4wQM6J3OC6FcoM,4649
91
91
  remoteRF_server/tools/gist_status_testing.py,sha256=IYw7UkPjAUpKDTtIlnYGb5g6SJkwz4TRGUfJJ6f4LhQ,2690
92
92
  remoteRF_server/tools/introspect_uhd.py,sha256=vUpPb0rM9tsHPxWadS3EfMDE-gMd-TvNV0TjrZOQqBY,4531
93
- remoterf_server-1.1.0.dev45.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
94
- remoterf_server-1.1.0.dev45.dist-info/METADATA,sha256=qnArq0jpxUuzWtEecBK8T0hcOH9uoimCAXbmKGINhxk,42069
95
- remoterf_server-1.1.0.dev45.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
96
- remoterf_server-1.1.0.dev45.dist-info/entry_points.txt,sha256=_bbKk65PfYi-n6zUjqOiOwcalf_Ws1TCGATIe1TukxE,136
97
- remoterf_server-1.1.0.dev45.dist-info/top_level.txt,sha256=NuYWe8dSx3qdbxshWBwOgx68EHmJ9I8Zvxam4ARsQ_I,30
98
- remoterf_server-1.1.0.dev45.dist-info/RECORD,,
93
+ remoterf_server-1.1.0.dev46.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
94
+ remoterf_server-1.1.0.dev46.dist-info/METADATA,sha256=OJ9-jeWed-pV98PI7BGqFv7mQBw5cw7yWCIuXvTG2Qg,42069
95
+ remoterf_server-1.1.0.dev46.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
96
+ remoterf_server-1.1.0.dev46.dist-info/entry_points.txt,sha256=_bbKk65PfYi-n6zUjqOiOwcalf_Ws1TCGATIe1TukxE,136
97
+ remoterf_server-1.1.0.dev46.dist-info/top_level.txt,sha256=NuYWe8dSx3qdbxshWBwOgx68EHmJ9I8Zvxam4ARsQ_I,30
98
+ remoterf_server-1.1.0.dev46.dist-info/RECORD,,