Skip to content

Commit 857cb47

Browse files
[#21939] fix: handle sign message after dapp pairing (#22026)
1 parent 4782b3e commit 857cb47

File tree

3 files changed

+18
-7
lines changed

3 files changed

+18
-7
lines changed

src/status_im/contexts/keycard/utils.cljs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,9 @@
8484
(->> (:accounts kp)
8585
(map :address)
8686
set))]
87-
(-> keypairs
88-
vals
89-
find-keycard-keypair
90-
keypair-addresses
91-
(contains? (string/lower-case address)))))
87+
(when-not (nil? address)
88+
(-> keypairs
89+
vals
90+
find-keycard-keypair
91+
keypair-addresses
92+
(contains? (string/lower-case address))))))

src/status_im/contexts/wallet/wallet_connect/events/session_requests.cljs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
[status-im.contexts.wallet.wallet-connect.utils.transactions :as transactions]
1010
[status-im.contexts.wallet.wallet-connect.utils.typed-data :as typed-data]
1111
[taoensso.timbre :as log]
12+
[utils.address :as utils-address]
1213
[utils.i18n :as i18n]
1314
[utils.re-frame :as rf]
1415
[utils.transforms :as transforms]))
@@ -61,14 +62,19 @@
6162
:wallet-connect/process-personal-sign
6263
(fn [{:keys [db]}]
6364
(let [[raw-data address] (data-store/get-db-current-request-params db)
64-
parsed-data (native-module/hex-to-utf8 raw-data)]
65+
parsed-data (if (utils-address/has-hex-prefix? raw-data)
66+
(native-module/hex-to-utf8 raw-data)
67+
raw-data)
68+
hex-message (if (utils-address/has-hex-prefix? raw-data)
69+
raw-data
70+
(native-module/utf8-to-hex raw-data))]
6571
{:db (update-in db
6672
[:wallet-connect/current-request]
6773
assoc
6874
:address (string/lower-case address)
6975
:display-data (or parsed-data raw-data))
7076
:fx [[:effects.wallet-connect/hash-message
71-
{:message raw-data
77+
{:message hex-message
7278
:on-success #(rf/dispatch [:wallet-connect/store-prepared-hash %])
7379
:on-fail #(rf/dispatch [:wallet-connect/on-processing-error %])}]
7480
[:dispatch [:wallet-connect/show-request-modal]]]})))

src/utils/address.cljs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
(def regx-address-contains #"(?i)0x[a-fA-F0-9]{40}")
1414
(def zero-address "0x0000000000000000000000000000000000000000")
1515

16+
(defn has-hex-prefix?
17+
[message]
18+
(string/starts-with? message hex-prefix))
19+
1620
(defn normalized-hex
1721
[hex]
1822
(when hex

0 commit comments

Comments
 (0)