Revisions from develop: -59ceddbaadevelop origin/develop fix(wallet): fix bridge transactions (#20902) -99ccbc338Cover wallet send events with tests Part 2 #20411 #20533 (#20721) -8c2d5398bEnabling WalletConnect feature flag (#20906) -67c83b13efix(wallet): remove edit routes button in bridging (#20874) -11a84ba14feat(wallet): disable complex routing (#20901) -1f5bb579cchore(wallet): disable bridging on unsupported tokens (#20846) -4586f8007Add toggle in advanced settings for mobile data -55c620e59fix: create password for small screen (#20645) -525609f0aWallet Activity: transactions are not sorted by time #20808 (#20862) -90653955achore(settings): Disable telemetry option (#20881) -d27ab756dfix_:display group message using the new ui (#20787) -c6a1db633ci: enable split apks & build only for arm64-v8a (#20683) -73777e052Ensure keycard account can send transaction after upgrading from v1 to v2 #20552 (#20845) -a6d3fc374[#20524] fix: the missed keypairs are shown in the key pair list screen (#20888) -a671c7083fix broken screen and navigation when syncing fails (#20887) -a45991b6d🥅 Filter connected dapps based on testnet mode, reject proposals and requests gracefully (#20799) -2e9fa22e4feat: wallet router v2 (#20631) -737d8c4d5rename sub to fix error when requesting to join community (#20868) -3aa7e103fSync process is blocked on Enabled notifications screen (#20883) -c1d2d44daperf: Fix app freeze after login (#20729) -0fed8113de2e: updated testnet switching and added one test into smoke -53c35cb55fix(wallet): Linear gradient exception on invalid colors for watched account cards (#20854) -be8236554chore(settings)_: Remove testnet toggle from legacy advanced settings (#20875) -eae8a6559feat(wallet)_: Add beta info box in activity tab (#20873) -fe54a25a3fix: not clearing network & web3-wallet on logout (#20886) -15a4219efReject wallet-connect request by dragging the modal down (#20763) (#20836) -2ffbdac89WalletConnect show expired toast (#20857) -402eb8397fix Issue with scrolling WalletConnect transaction on Android (#20867) -ff88049a0Fix WalletConnect header alignment on Android (#20860) -cee21241dWalletConnect no internet edge-cases (#20826) -60ad7c8a2chore(tests): New match-strict? cljs.test directive (#20825) -4989c9278fix_: Adding own address as saved addresses (#20839)
94 lines
2.8 KiB
Clojure
94 lines
2.8 KiB
Clojure
(ns react-native.wallet-connect
|
|
(:require
|
|
["@walletconnect/core" :as wc-core]
|
|
["@walletconnect/utils" :as wc-utils]
|
|
["@walletconnect/web3wallet$default" :as Web3Wallet]
|
|
[cljs-bean.core :as bean]
|
|
[oops.core :as oops]))
|
|
|
|
(defn- wallet-connect-core
|
|
[project-id]
|
|
(new ^js wc-core/Core (clj->js {:projectId project-id})))
|
|
|
|
(defn init
|
|
[project-id metadata]
|
|
(let [core (wallet-connect-core project-id)]
|
|
(oops/ocall Web3Wallet
|
|
"init"
|
|
(bean/->js {:core core
|
|
:metadata metadata}))))
|
|
|
|
(defn build-approved-namespaces
|
|
[proposal supported-namespaces]
|
|
(oops/ocall wc-utils
|
|
"buildApprovedNamespaces"
|
|
(bean/->js {:proposal proposal
|
|
:supportedNamespaces (clj->js supported-namespaces)})))
|
|
|
|
;; Get an error from this list:
|
|
;; https://github.com/WalletConnect/walletconnect-monorepo/blob/c6e9529418a0c81d4efcc6ac4e61f242a50b56c5/packages/utils/src/errors.ts
|
|
(defn get-sdk-error
|
|
[error-key]
|
|
(oops/ocall wc-utils "getSdkError" error-key))
|
|
|
|
(defn parse-uri
|
|
[uri]
|
|
(-> (oops/ocall wc-utils "parseUri" uri)
|
|
(bean/->clj)))
|
|
|
|
(defn respond-session-request
|
|
[{:keys [web3-wallet topic id result error]}]
|
|
(oops/ocall web3-wallet
|
|
"respondSessionRequest"
|
|
(bean/->js {:topic topic
|
|
:response
|
|
(merge {:id id
|
|
:jsonrpc "2.0"}
|
|
(when result
|
|
{:result result})
|
|
(when error
|
|
{:error error}))})))
|
|
|
|
(defn reject-session
|
|
[{:keys [web3-wallet id reason]}]
|
|
(oops/ocall web3-wallet
|
|
"rejectSession"
|
|
(bean/->js {:id id
|
|
:reason reason})))
|
|
|
|
(defn approve-session
|
|
[{:keys [web3-wallet id approved-namespaces]}]
|
|
(oops/ocall web3-wallet
|
|
"approveSession"
|
|
(bean/->js {:id id
|
|
:namespaces approved-namespaces})))
|
|
|
|
(defn disconnect-session
|
|
[{:keys [web3-wallet reason topic]}]
|
|
(oops/ocall web3-wallet
|
|
"disconnectSession"
|
|
(bean/->js {:topic topic
|
|
:reason reason})))
|
|
|
|
(defn get-active-sessions
|
|
[web3-wallet]
|
|
(oops/ocall web3-wallet "getActiveSessions"))
|
|
|
|
(defn core-pairing-pair
|
|
[web3-wallet url]
|
|
(oops/ocall web3-wallet
|
|
"core.pairing.pair"
|
|
(bean/->js {:uri url})))
|
|
|
|
(defn get-pairings
|
|
[web3-wallet]
|
|
(oops/ocall web3-wallet "core.pairing.getPairings"))
|
|
|
|
(defn register-handler
|
|
[{:keys [web3-wallet event handler]}]
|
|
(oops/ocall web3-wallet
|
|
"on"
|
|
event
|
|
#(-> (bean/->clj %)
|
|
handler)))
|