web3 opt-in updates
This commit is contained in:
parent
3a67b09c4c
commit
8941331e40
|
@ -9,9 +9,6 @@
|
|||
(js/window.addEventListener "statusapi"
|
||||
#(re-frame/dispatch [:on-status-api (js->clj (.-detail %) :keywordize-keys true)]))
|
||||
|
||||
(js/window.addEventListener "ethereumprovider"
|
||||
#(re-frame/dispatch [:on-web3-success (.-ethereum (.-detail %))]))
|
||||
|
||||
(defn dev-setup []
|
||||
(when config/debug?
|
||||
(enable-console-print!)
|
||||
|
|
|
@ -1,8 +1,15 @@
|
|||
(ns status-dapp.db)
|
||||
(ns status-dapp.db
|
||||
(:require [re-frame.core :as re-frame]))
|
||||
|
||||
(def web3 (or (when (exists? js/web3) js/web3)
|
||||
(when js/ethereum
|
||||
(js/setTimeout (fn [] (.then (.enable js/ethereum) #(do
|
||||
(re-frame/dispatch [:set-default-account]))) 100))
|
||||
(js/Web3. js/ethereum))))
|
||||
|
||||
(def default-db
|
||||
{:web3 (when (exists? js/web3) js/web3)
|
||||
{:web3 web3
|
||||
:web3-async-data {}
|
||||
:view-id (if (exists? js/web3) :web3 :no-web3)
|
||||
:view-id (if web3 :web3 :no-web3)
|
||||
:message "Test message"
|
||||
:tab-view :accounts})
|
|
@ -104,16 +104,11 @@
|
|||
(fn [_ _]
|
||||
db/default-db))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
:request-web3
|
||||
(fn [{:keys [db]} _]
|
||||
(js/window.postMessage (clj->js {:type "ETHEREUM_PROVIDER_REQUEST"}) "*")
|
||||
{:db (assoc db :web3 nil :view-id :no-web3)}))
|
||||
|
||||
;; Status web3 doesn't support sync calls
|
||||
(re-frame/reg-event-fx
|
||||
:request-web3-async-data
|
||||
(fn [{{:keys [web3] :as db} :db} _]
|
||||
(println "WEB3" web3)
|
||||
(when web3
|
||||
{:db (update db :web3-async-data
|
||||
assoc
|
||||
|
@ -256,8 +251,7 @@
|
|||
{:db (assoc-in db [:api :contact] (:CONTACT_CODE data))}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
:on-web3-success
|
||||
(fn [{db :db} [_ provider]]
|
||||
{:db (assoc db :web3 (js/Web3. provider)
|
||||
:view-id :web3)
|
||||
:dispatch [:request-web3-async-data]}))
|
||||
:set-default-account
|
||||
(fn [{db :db} _]
|
||||
(set! (.-defaultAccount (.-eth (:web3 db))) js/currentAccountAddress)
|
||||
{:dispatch [:request-web3-async-data]}))
|
|
@ -137,8 +137,6 @@
|
|||
|
||||
(when (= :api tab-view)
|
||||
[react/view
|
||||
[ui/button "Request web3 access"
|
||||
#(re-frame/dispatch [:request-web3])]
|
||||
|
||||
[ui/button "Request contact code (public key)"
|
||||
#(js/window.postMessage
|
||||
|
|
Loading…
Reference in New Issue