aboutsummaryrefslogtreecommitdiffstats
path: root/mascara/example/app.js
diff options
context:
space:
mode:
Diffstat (limited to 'mascara/example/app.js')
-rw-r--r--mascara/example/app.js77
1 files changed, 29 insertions, 48 deletions
diff --git a/mascara/example/app.js b/mascara/example/app.js
index aae7ccd19..598e2c84c 100644
--- a/mascara/example/app.js
+++ b/mascara/example/app.js
@@ -1,57 +1,38 @@
-window.addEventListener('load', web3Detect)
+const EthQuery = require('ethjs-query')
+
+window.addEventListener('load', loadProvider)
window.addEventListener('message', console.warn)
-function web3Detect() {
- if (global.web3) {
- logToDom('web3 detected!')
- startApp()
- } else {
- logToDom('no web3 detected!')
- }
+async function loadProvider() {
+ const ethereumProvider = window.metamask.createDefaultProvider({ host: 'http://localhost:9001' })
+ const ethQuery = new EthQuery(ethereumProvider)
+ const accounts = await ethQuery.accounts()
+ window.METAMASK_ACCOUNT = accounts[0] || 'locked'
+ logToDom(accounts.length ? accounts[0] : 'LOCKED or undefined', 'account')
+ setupButtons(ethQuery)
}
-function startApp(){
- console.log('app started')
- var primaryAccount
- console.log('getting main account...')
- web3.eth.getAccounts((err, addresses) => {
- if (err) console.error(err)
- console.log('set address', addresses[0])
- primaryAccount = addresses[0]
- })
+function logToDom(message, context){
+ document.getElementById(context).innerText = message
+ console.log(message)
+}
- document.querySelector('.action-button-1').addEventListener('click', function(){
- console.log('saw click')
- console.log('sending tx')
- primaryAccount
- web3.eth.sendTransaction({
- from: primaryAccount,
- to: primaryAccount,
- value: 0,
- }, function(err, txHash){
- if (err) throw err
- console.log('sendTransaction result:', err || txHash)
- })
+function setupButtons (ethQuery) {
+ const accountButton = document.getElementById('action-button-1')
+ accountButton.addEventListener('click', async () => {
+ const accounts = await ethQuery.accounts()
+ window.METAMASK_ACCOUNT = accounts[0] || 'locked'
+ logToDom(accounts.length ? accounts[0] : 'LOCKED or undefined', 'account')
})
- document.querySelector('.action-button-2').addEventListener('click', function(){
- console.log('saw click')
- setTimeout(function(){
- console.log('sending tx')
- web3.eth.sendTransaction({
- from: primaryAccount,
- to: primaryAccount,
- value: 0,
- }, function(err, txHash){
- if (err) throw err
- console.log('sendTransaction result:', err || txHash)
- })
+ const txButton = document.getElementById('action-button-2')
+ txButton.addEventListener('click', async () => {
+ if (!window.METAMASK_ACCOUNT || window.METAMASK_ACCOUNT === 'locked') return
+ const txHash = await ethQuery.sendTransaction({
+ from: window.METAMASK_ACCOUNT,
+ to: window.METAMASK_ACCOUNT,
+ data: '',
})
+ logToDom(txHash, 'cb-value')
})
-
-}
-
-function logToDom(message){
- document.body.appendChild(document.createTextNode(message))
- console.log(message)
-}
+} \ No newline at end of file