Enable partitioned topic
This commit is contained in:
parent
dc0d42ee6b
commit
7f76e2fbf0
1
.env
1
.env
|
@ -18,3 +18,4 @@ POW_TIME=1
|
||||||
RN_BRIDGE_THRESHOLD_WARNINGS=0
|
RN_BRIDGE_THRESHOLD_WARNINGS=0
|
||||||
RPC_NETWORKS_ONLY=0
|
RPC_NETWORKS_ONLY=0
|
||||||
STICKERS_ENABLED=1
|
STICKERS_ENABLED=1
|
||||||
|
PARTITIONED_TOPIC=1
|
||||||
|
|
1
.env.e2e
1
.env.e2e
|
@ -15,3 +15,4 @@ POW_TARGET=0.002
|
||||||
POW_TIME=1
|
POW_TIME=1
|
||||||
RN_BRIDGE_THRESHOLD_WARNINGS=0
|
RN_BRIDGE_THRESHOLD_WARNINGS=0
|
||||||
STICKERS_ENABLED=0
|
STICKERS_ENABLED=0
|
||||||
|
PARTITIONED_TOPIC=1
|
||||||
|
|
|
@ -18,3 +18,4 @@ POW_TIME=1
|
||||||
RN_BRIDGE_THRESHOLD_WARNINGS=0
|
RN_BRIDGE_THRESHOLD_WARNINGS=0
|
||||||
RPC_NETWORKS_ONLY=0
|
RPC_NETWORKS_ONLY=0
|
||||||
STICKERS_ENABLED=1
|
STICKERS_ENABLED=1
|
||||||
|
PARTITIONED_TOPIC=1
|
||||||
|
|
|
@ -16,3 +16,4 @@ POW_TIME=1
|
||||||
RN_BRIDGE_THRESHOLD_WARNINGS=0
|
RN_BRIDGE_THRESHOLD_WARNINGS=0
|
||||||
RPC_NETWORKS_ONLY=0
|
RPC_NETWORKS_ONLY=0
|
||||||
STICKERS_ENABLED=0
|
STICKERS_ENABLED=0
|
||||||
|
PARTITIONED_TOPIC=1
|
||||||
|
|
|
@ -15,3 +15,4 @@ POW_TARGET=0.002
|
||||||
POW_TIME=1
|
POW_TIME=1
|
||||||
RN_BRIDGE_THRESHOLD_WARNINGS=0
|
RN_BRIDGE_THRESHOLD_WARNINGS=0
|
||||||
STICKERS_ENABLED=0
|
STICKERS_ENABLED=0
|
||||||
|
PARTITIONED_TOPIC=1
|
||||||
|
|
|
@ -16,3 +16,4 @@ POW_TIME=1
|
||||||
RN_BRIDGE_THRESHOLD_WARNINGS=0
|
RN_BRIDGE_THRESHOLD_WARNINGS=0
|
||||||
RPC_NETWORKS_ONLY=1
|
RPC_NETWORKS_ONLY=1
|
||||||
STICKERS_ENABLED=0
|
STICKERS_ENABLED=0
|
||||||
|
PARTITIONED_TOPIC=1
|
||||||
|
|
|
@ -56,6 +56,7 @@
|
||||||
[{:web3 web3
|
[{:web3 web3
|
||||||
:src current-public-key
|
:src current-public-key
|
||||||
:dst public-key
|
:dst public-key
|
||||||
|
:topics (get-in cofx [:db :mailserver/topics])
|
||||||
:payload ""}]}))
|
:payload ""}]}))
|
||||||
|
|
||||||
(re-frame/reg-fx
|
(re-frame/reg-fx
|
||||||
|
|
|
@ -137,6 +137,7 @@
|
||||||
{:web3 web3
|
{:web3 web3
|
||||||
:src current-public-key
|
:src current-public-key
|
||||||
:dsts destinations
|
:dsts destinations
|
||||||
|
:available-topics (get-in cofx [:db :mailserver/topics])
|
||||||
:success-event [:transport/message-sent
|
:success-event [:transport/message-sent
|
||||||
chat-id
|
chat-id
|
||||||
message-id
|
message-id
|
||||||
|
|
|
@ -209,6 +209,7 @@
|
||||||
[{:web3 web3
|
[{:web3 web3
|
||||||
:src current-public-key
|
:src current-public-key
|
||||||
:dst current-public-key
|
:dst current-public-key
|
||||||
|
:topics (get-in cofx [:db :mailserver/topics])
|
||||||
:payload payload}]}))
|
:payload payload}]}))
|
||||||
|
|
||||||
(fx/defn send-installation-message-fx [cofx payload]
|
(fx/defn send-installation-message-fx [cofx payload]
|
||||||
|
|
|
@ -69,6 +69,7 @@
|
||||||
:success-event success-event
|
:success-event success-event
|
||||||
:src (accounts.db/current-public-key cofx)
|
:src (accounts.db/current-public-key cofx)
|
||||||
:dst dst
|
:dst dst
|
||||||
|
:topics (:mailserver/topics db)
|
||||||
:payload payload}]}))
|
:payload payload}]}))
|
||||||
|
|
||||||
(fx/defn send-with-pubkey
|
(fx/defn send-with-pubkey
|
||||||
|
@ -81,13 +82,18 @@
|
||||||
chat-id
|
chat-id
|
||||||
success-event
|
success-event
|
||||||
payload)
|
payload)
|
||||||
|
(let [partitioned-topic-hash (transport.topic/public-key->discovery-topic-hash chat-id)
|
||||||
|
topics (db :mailserver/topics)
|
||||||
|
topic-hash (if (contains? topics partitioned-topic-hash)
|
||||||
|
partitioned-topic-hash
|
||||||
|
transport.topic/discovery-topic-hash)]
|
||||||
{:shh/post [{:web3 web3
|
{:shh/post [{:web3 web3
|
||||||
:success-event success-event
|
:success-event success-event
|
||||||
:message (merge {:sig (accounts.db/current-public-key cofx)
|
:message (merge {:sig (accounts.db/current-public-key cofx)
|
||||||
:pubKey chat-id
|
:pubKey chat-id
|
||||||
:payload payload
|
:payload payload
|
||||||
:topic (transport.topic/public-key->discovery-topic-hash chat-id)}
|
:topic topic-hash}
|
||||||
whisper-opts)}]}))))
|
whisper-opts)}]})))))
|
||||||
|
|
||||||
(defrecord Message [content content-type message-type clock-value timestamp]
|
(defrecord Message [content content-type message-type clock-value timestamp]
|
||||||
StatusMessage
|
StatusMessage
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
partitioned-topic
|
partitioned-topic
|
||||||
utils/get-topic))
|
utils/get-topic))
|
||||||
|
|
||||||
|
(def discovery-topic constants/contact-discovery)
|
||||||
(def discovery-topic-hash (utils/get-topic constants/contact-discovery))
|
(def discovery-topic-hash (utils/get-topic constants/contact-discovery))
|
||||||
|
|
||||||
(defn public-key->discovery-topic
|
(defn public-key->discovery-topic
|
||||||
|
@ -45,10 +46,15 @@
|
||||||
(partitioned-topic public-key)
|
(partitioned-topic public-key)
|
||||||
constants/contact-discovery))
|
constants/contact-discovery))
|
||||||
|
|
||||||
(defn public-key->discovery-topic-hash [public-key]
|
(defn public-key->discovery-topic-hash
|
||||||
|
[public-key]
|
||||||
(if config/partitioned-topic-enabled?
|
(if config/partitioned-topic-enabled?
|
||||||
(partitioned-topic-hash public-key)
|
(partitioned-topic-hash public-key)
|
||||||
discovery-topic-hash))
|
discovery-topic-hash))
|
||||||
|
|
||||||
(defn discovery-topics [public-key]
|
(defn discovery-topics [public-key]
|
||||||
[(partitioned-topic-hash public-key) discovery-topic-hash])
|
[(partitioned-topic-hash public-key) discovery-topic-hash])
|
||||||
|
|
||||||
|
(defn contains-topic?
|
||||||
|
[available-topics topic]
|
||||||
|
(contains? available-topics (utils/get-topic topic)))
|
||||||
|
|
|
@ -80,11 +80,15 @@
|
||||||
(re-frame/reg-fx
|
(re-frame/reg-fx
|
||||||
:shh/send-direct-message
|
:shh/send-direct-message
|
||||||
(fn [post-calls]
|
(fn [post-calls]
|
||||||
(doseq [{:keys [web3 payload src dst success-event error-event]
|
(doseq [{:keys [web3 payload src dst success-event error-event topics]
|
||||||
:or {error-event :transport/send-status-message-error}} post-calls]
|
:or {error-event :transport/send-status-message-error}} post-calls]
|
||||||
(let [direct-message {:pubKey dst
|
(let [part-topic-hash (transport.topic/public-key->discovery-topic-hash dst)
|
||||||
|
topic (if (contains? topics part-topic-hash)
|
||||||
|
(transport.topic/public-key->discovery-topic dst)
|
||||||
|
transport.topic/discovery-topic)
|
||||||
|
direct-message {:pubKey dst
|
||||||
:sig src
|
:sig src
|
||||||
:chat (transport.topic/public-key->discovery-topic dst)
|
:chat topic
|
||||||
:payload payload}]
|
:payload payload}]
|
||||||
(send-direct-message! web3 direct-message success-event error-event 1)))))
|
(send-direct-message! web3 direct-message success-event error-event 1)))))
|
||||||
|
|
||||||
|
@ -107,12 +111,15 @@
|
||||||
(re-frame/reg-fx
|
(re-frame/reg-fx
|
||||||
:shh/send-group-message
|
:shh/send-group-message
|
||||||
(fn [params]
|
(fn [params]
|
||||||
(let [{:keys [web3 payload chat src dsts success-event error-event]
|
(let [{:keys [web3 payload src dsts success-event error-event available-topics]
|
||||||
:or {error-event :transport/send-status-message-error}} params]
|
:or {error-event :transport/send-status-message-error}} params]
|
||||||
(doseq [{:keys [public-key chat]} dsts]
|
(doseq [{:keys [public-key chat]} dsts]
|
||||||
(let [message
|
(let [topic (if (transport.topic/contains-topic? available-topics chat)
|
||||||
|
chat
|
||||||
|
transport.topic/discovery-topic)
|
||||||
|
message
|
||||||
(clj->js {:pubKey public-key
|
(clj->js {:pubKey public-key
|
||||||
:chat chat
|
:chat topic
|
||||||
:sig src
|
:sig src
|
||||||
:payload (-> payload
|
:payload (-> payload
|
||||||
transit/serialize
|
transit/serialize
|
||||||
|
|
Loading…
Reference in New Issue