mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-22 17:33:23 +01:00
commit
d4e400e5e5
@ -9,6 +9,13 @@
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### Developing on UI Only
|
||||
|
||||
You can run `npm run ui`, and your browser should open a live-reloading demo version of the plugin UI.
|
||||
|
||||
Some actions will crash the app, so this is only for tuning aesthetics, but it allows live-reloading styles, which is a much faster feedback loop than reloading the full extension.
|
||||
|
||||
### Developing with Gulp
|
||||
|
||||
We're using an experimental version of `gulp-cli`, so if you have the old version of gulp, you'll need to uninstall it, `npm uninstall -g gulp`, and install this one instead:
|
||||
|
@ -54,12 +54,14 @@ function setupControllerConnection (stream, cb) {
|
||||
}
|
||||
|
||||
function getCurrentDomain (cb) {
|
||||
const unknown = '<unknown>'
|
||||
if (!chrome.tabs) return cb(null, unknown)
|
||||
chrome.tabs.query({active: true, currentWindow: true}, function (results) {
|
||||
var activeTab = results[0]
|
||||
var currentUrl = activeTab && activeTab.url
|
||||
var currentDomain = url.parse(currentUrl).host
|
||||
if (!currentUrl) {
|
||||
return cb(null, '<unknown>')
|
||||
return cb(null, unknown)
|
||||
}
|
||||
cb(null, currentDomain)
|
||||
})
|
||||
|
29
development/beefy.js
Normal file
29
development/beefy.js
Normal file
@ -0,0 +1,29 @@
|
||||
const beefy = require('beefy')
|
||||
const http = require('http')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const states = require('./states')
|
||||
|
||||
const statesPath = path.join(__dirname, 'states.js')
|
||||
const statesJson = JSON.stringify(states)
|
||||
fs.writeFileSync(statesPath, statesJson)
|
||||
|
||||
const port = 8124
|
||||
|
||||
const handler = beefy({
|
||||
entries: ['mocker.js']
|
||||
, cwd: __dirname
|
||||
, live: true
|
||||
, quiet: false
|
||||
, bundlerFlags: ['-t', 'brfs']
|
||||
})
|
||||
|
||||
console.dir(handler)
|
||||
|
||||
http.createServer(handler).listen(port)
|
||||
console.log(`Now listening on port ${port}`)
|
||||
|
||||
function on404(req, resp) {
|
||||
resp.writeHead(404, {})
|
||||
resp.end('sorry folks!')
|
||||
}
|
1
development/fonts
Symbolic link
1
development/fonts
Symbolic link
@ -0,0 +1 @@
|
||||
../app/fonts
|
18
development/genStates.js
Normal file
18
development/genStates.js
Normal file
@ -0,0 +1,18 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
const statesPath = path.join(__dirname, 'states')
|
||||
const stateNames = fs.readdirSync(statesPath)
|
||||
|
||||
const states = stateNames.reduce((result, stateFileName) => {
|
||||
const statePath = path.join(__dirname, 'states', stateFileName)
|
||||
const stateFile = fs.readFileSync(statePath).toString()
|
||||
const state = JSON.parse(stateFile)
|
||||
result[stateFileName.split('.')[0].replace(/-/g, ' ', 'g')] = state
|
||||
return result
|
||||
}, {})
|
||||
|
||||
const result = `module.exports = ${JSON.stringify(states)}`
|
||||
|
||||
const statesJsonPath = path.join(__dirname, 'states.js')
|
||||
fs.writeFileSync(statesJsonPath, result)
|
1
development/images
Symbolic link
1
development/images
Symbolic link
@ -0,0 +1 @@
|
||||
../app/images
|
37
development/index.html
Normal file
37
development/index.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>MetaMask</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- app content -->
|
||||
<div id="app-content" style="height: 100%"></div>
|
||||
<script src="./bundle.js" type="text/javascript" charset="utf-8"></script>
|
||||
|
||||
<!-- design reference -->
|
||||
<link rel="stylesheet" type="text/css" href="../ui/app/css/debug.css">
|
||||
<div id="design-container">
|
||||
<!-- persist scroll position on refresh -->
|
||||
<script type="text/javascript">
|
||||
var scrollElement = document.getElementById('design-container')
|
||||
function getScrollPosition () {
|
||||
var scrollTop = scrollElement.scrollTop, scrollLeft = scrollElement.scrollLeft
|
||||
window.location.hash = 'scrollTop='+scrollTop+'&scrollLeft='+scrollLeft
|
||||
}
|
||||
window.onload = function () {
|
||||
setInterval(getScrollPosition, 1000)
|
||||
var hashLocation = window.location.hash.split('#')[1]
|
||||
if (!hashLocation) return
|
||||
var sections = hashLocation.split('&')
|
||||
var scrollTop = sections[0].split('=')[1]
|
||||
var scrollLeft = sections[1].split('=')[1]
|
||||
scrollElement.scrollTop = scrollTop
|
||||
scrollElement.scrollLeft = scrollLeft
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
18
development/mockStore.js
Normal file
18
development/mockStore.js
Normal file
@ -0,0 +1,18 @@
|
||||
const createStore = require('redux').createStore
|
||||
const applyMiddleware = require('redux').applyMiddleware
|
||||
const thunkMiddleware = require('redux-thunk')
|
||||
const createLogger = require('redux-logger')
|
||||
const rootReducer = require('../ui/app/reducers')
|
||||
|
||||
module.exports = configureStore
|
||||
|
||||
const loggerMiddleware = createLogger()
|
||||
|
||||
const createStoreWithMiddleware = applyMiddleware(
|
||||
thunkMiddleware,
|
||||
loggerMiddleware
|
||||
)(createStore)
|
||||
|
||||
function configureStore (initialState) {
|
||||
return createStoreWithMiddleware(rootReducer, initialState)
|
||||
}
|
66
development/mocker.js
Normal file
66
development/mocker.js
Normal file
@ -0,0 +1,66 @@
|
||||
const render = require('react-dom').render
|
||||
const h = require('react-hyperscript')
|
||||
const Root = require('../ui/app/root')
|
||||
const configureStore = require('./mockStore')
|
||||
const states = require('./states')
|
||||
const Selector = require('./selector')
|
||||
|
||||
// Query String
|
||||
const qs = require('qs')
|
||||
let queryString = qs.parse(window.location.href.split('#')[1])
|
||||
let selectedView = queryString.view || 'account detail'
|
||||
|
||||
// CSS
|
||||
const MetaMaskUiCss = require('../ui/css')
|
||||
const injectCss = require('inject-css')
|
||||
|
||||
const firstState = states[selectedView]
|
||||
updateQueryParams()
|
||||
|
||||
function updateQueryParams(newView) {
|
||||
queryString.view = newView
|
||||
const params = qs.stringify(queryString)
|
||||
window.location.href = window.location.href.split('#')[0] + `#${params}`
|
||||
}
|
||||
|
||||
const actions = {
|
||||
_setAccountManager(){},
|
||||
update: function(stateName) {
|
||||
selectedView = stateName
|
||||
updateQueryParams(stateName)
|
||||
const newState = states[selectedView]
|
||||
return {
|
||||
type: 'GLOBAL_FORCE_UPDATE',
|
||||
value: newState,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
var css = MetaMaskUiCss()
|
||||
injectCss(css)
|
||||
|
||||
const container = document.querySelector('#app-content')
|
||||
|
||||
// parse opts
|
||||
var store = configureStore(states[selectedView])
|
||||
|
||||
// start app
|
||||
render(
|
||||
h('.super-dev-container', [
|
||||
|
||||
h(Selector, { actions, selectedKey: selectedView, states, store }),
|
||||
|
||||
h('.mock-app-root', {
|
||||
style: {
|
||||
height: '500px',
|
||||
width: '360px',
|
||||
},
|
||||
}, [
|
||||
h(Root, {
|
||||
store: store,
|
||||
}),
|
||||
]),
|
||||
|
||||
]
|
||||
), container)
|
||||
|
30
development/selector.js
Normal file
30
development/selector.js
Normal file
@ -0,0 +1,30 @@
|
||||
const Component = require('react').Component
|
||||
const h = require('react-hyperscript')
|
||||
const inherits = require('util').inherits
|
||||
|
||||
module.exports = NewComponent
|
||||
|
||||
inherits(NewComponent, Component)
|
||||
function NewComponent () {
|
||||
Component.call(this)
|
||||
}
|
||||
|
||||
NewComponent.prototype.render = function () {
|
||||
const props = this.props
|
||||
let { states, selectedKey, actions, store } = props
|
||||
|
||||
const state = this.state || {}
|
||||
const selected = state.selected || selectedKey
|
||||
|
||||
return h('select', {
|
||||
value: selected,
|
||||
onChange:(event) => {
|
||||
const selectedKey = event.target.value
|
||||
store.dispatch(actions.update(selectedKey))
|
||||
this.setState({ selected: selectedKey })
|
||||
},
|
||||
}, Object.keys(states).map((stateName) => {
|
||||
return h('option', { value: stateName }, stateName)
|
||||
}))
|
||||
|
||||
}
|
1
development/states.js
Normal file
1
development/states.js
Normal file
File diff suppressed because one or more lines are too long
1
development/states.json
Normal file
1
development/states.json
Normal file
File diff suppressed because one or more lines are too long
84
development/states/account-detail.json
Normal file
84
development/states/account-detail.json
Normal file
@ -0,0 +1,84 @@
|
||||
{
|
||||
"metamask": {
|
||||
"isInitialized": true,
|
||||
"isUnlocked": true,
|
||||
"currentDomain": "example.com",
|
||||
"rpcTarget": "https://rawtestrpc.metamask.io/",
|
||||
"identities": {
|
||||
"0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": {
|
||||
"name": "Wallet 1",
|
||||
"address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": {
|
||||
"name": "Wallet 2",
|
||||
"address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0xeb9e64b93097bc15f01f13eae97015c57ab64823": {
|
||||
"name": "Wallet 3",
|
||||
"address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0x704107d04affddd9b66ab9de3dd7b095852e9b69": {
|
||||
"name": "Wallet 4",
|
||||
"address": "0x704107d04affddd9b66ab9de3dd7b095852e9b69",
|
||||
"mayBeFauceting": false
|
||||
}
|
||||
},
|
||||
"unconfTxs": {},
|
||||
"accounts": {
|
||||
"0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": {
|
||||
"code": "0x",
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc"
|
||||
},
|
||||
"0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": {
|
||||
"code": "0x",
|
||||
"nonce": "0x0",
|
||||
"balance": "0x0",
|
||||
"address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b"
|
||||
},
|
||||
"0xeb9e64b93097bc15f01f13eae97015c57ab64823": {
|
||||
"code": "0x",
|
||||
"nonce": "0x0",
|
||||
"balance": "0x0",
|
||||
"address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823"
|
||||
},
|
||||
"0x704107d04affddd9b66ab9de3dd7b095852e9b69": {
|
||||
"code": "0x",
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"address": "0x704107d04affddd9b66ab9de3dd7b095852e9b69"
|
||||
}
|
||||
},
|
||||
"transactions": [],
|
||||
"selectedAddress": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc",
|
||||
"network": "2",
|
||||
"seedWords": null,
|
||||
"isConfirmed": true,
|
||||
"unconfMsgs": {},
|
||||
"messages": [],
|
||||
"provider": {
|
||||
"type": "testnet"
|
||||
},
|
||||
"selectedAccount": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc"
|
||||
},
|
||||
"appState": {
|
||||
"menuOpen": false,
|
||||
"currentView": {
|
||||
"name": "accountDetail",
|
||||
"detailView": null,
|
||||
"context": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc"
|
||||
},
|
||||
"accountDetail": {
|
||||
"subview": "transactions"
|
||||
},
|
||||
"currentDomain": "127.0.0.1:9966",
|
||||
"transForward": true,
|
||||
"isLoading": false,
|
||||
"warning": null
|
||||
},
|
||||
"identities": {}
|
||||
}
|
85
development/states/accounts.json
Normal file
85
development/states/accounts.json
Normal file
@ -0,0 +1,85 @@
|
||||
{
|
||||
"metamask": {
|
||||
"isInitialized": true,
|
||||
"isUnlocked": true,
|
||||
"currentDomain": "example.com",
|
||||
"rpcTarget": "https://rawtestrpc.metamask.io/",
|
||||
"identities": {
|
||||
"0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": {
|
||||
"name": "Wallet 1",
|
||||
"address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": {
|
||||
"name": "Wallet 2",
|
||||
"address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0xeb9e64b93097bc15f01f13eae97015c57ab64823": {
|
||||
"name": "Wallet 3",
|
||||
"address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0x704107d04affddd9b66ab9de3dd7b095852e9b69": {
|
||||
"name": "Wallet 4",
|
||||
"address": "0x704107d04affddd9b66ab9de3dd7b095852e9b69",
|
||||
"mayBeFauceting": false
|
||||
}
|
||||
},
|
||||
"unconfTxs": {},
|
||||
"accounts": {
|
||||
"0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc"
|
||||
},
|
||||
"0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b"
|
||||
},
|
||||
"0xeb9e64b93097bc15f01f13eae97015c57ab64823": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823"
|
||||
},
|
||||
"0x704107d04affddd9b66ab9de3dd7b095852e9b69": {
|
||||
"balance": "0x0",
|
||||
"code": "0x",
|
||||
"nonce": "0x0",
|
||||
"address": "0x704107d04affddd9b66ab9de3dd7b095852e9b69"
|
||||
}
|
||||
},
|
||||
"transactions": [],
|
||||
"network": "2",
|
||||
"isConfirmed": true,
|
||||
"unconfMsgs": {},
|
||||
"messages": [],
|
||||
"provider": {
|
||||
"type": "testnet"
|
||||
},
|
||||
"selectedAccount": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc",
|
||||
"selectedAddress": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc",
|
||||
"seedWords": null
|
||||
},
|
||||
"appState": {
|
||||
"menuOpen": false,
|
||||
"currentView": {
|
||||
"name": "accounts"
|
||||
},
|
||||
"accountDetail": {
|
||||
"subview": "transactions",
|
||||
"accountExport": "none",
|
||||
"privateKey": ""
|
||||
},
|
||||
"currentDomain": "extensions",
|
||||
"transForward": true,
|
||||
"isLoading": false,
|
||||
"warning": null,
|
||||
"scrollToBottom": true
|
||||
},
|
||||
"identities": {}
|
||||
}
|
85
development/states/config.json
Normal file
85
development/states/config.json
Normal file
@ -0,0 +1,85 @@
|
||||
{
|
||||
"metamask": {
|
||||
"isInitialized": true,
|
||||
"isUnlocked": true,
|
||||
"currentDomain": "example.com",
|
||||
"rpcTarget": "https://rawtestrpc.metamask.io/",
|
||||
"identities": {
|
||||
"0x5f11b68b7d41633e74c6b18d8b8d147da52aedd6": {
|
||||
"name": "Wallet 1",
|
||||
"address": "0x5f11b68b7d41633e74c6b18d8b8d147da52aedd6",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0x843963b837841dad3b0f5969ff271108776616df": {
|
||||
"name": "Wallet 2",
|
||||
"address": "0x843963b837841dad3b0f5969ff271108776616df",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0x2cb215323857bec1c91e5db10fe87379a5cf129a": {
|
||||
"name": "Wallet 3",
|
||||
"address": "0x2cb215323857bec1c91e5db10fe87379a5cf129a",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0xc5091450b7548b0dce3a76b8d325929c39e648d1": {
|
||||
"name": "Wallet 4",
|
||||
"address": "0xc5091450b7548b0dce3a76b8d325929c39e648d1",
|
||||
"mayBeFauceting": false
|
||||
}
|
||||
},
|
||||
"unconfTxs": {},
|
||||
"accounts": {
|
||||
"0x5f11b68b7d41633e74c6b18d8b8d147da52aedd6": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0x5f11b68b7d41633e74c6b18d8b8d147da52aedd6"
|
||||
},
|
||||
"0x843963b837841dad3b0f5969ff271108776616df": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0x843963b837841dad3b0f5969ff271108776616df"
|
||||
},
|
||||
"0x2cb215323857bec1c91e5db10fe87379a5cf129a": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0x2cb215323857bec1c91e5db10fe87379a5cf129a"
|
||||
},
|
||||
"0xc5091450b7548b0dce3a76b8d325929c39e648d1": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0xc5091450b7548b0dce3a76b8d325929c39e648d1"
|
||||
}
|
||||
},
|
||||
"transactions": [],
|
||||
"selectedAddress": "0x843963b837841dad3b0f5969ff271108776616df",
|
||||
"network": "2",
|
||||
"isConfirmed": true,
|
||||
"unconfMsgs": {},
|
||||
"messages": [],
|
||||
"provider": {
|
||||
"type": "testnet"
|
||||
},
|
||||
"selectedAccount": "0x843963b837841dad3b0f5969ff271108776616df",
|
||||
"seedWords": null
|
||||
},
|
||||
"appState": {
|
||||
"menuOpen": false,
|
||||
"currentView": {
|
||||
"name": "accounts"
|
||||
},
|
||||
"accountDetail": {
|
||||
"subview": "transactions",
|
||||
"accountExport": "none",
|
||||
"privateKey": ""
|
||||
},
|
||||
"currentDomain": "testfaucet.metamask.io",
|
||||
"transForward": true,
|
||||
"isLoading": false,
|
||||
"warning": null,
|
||||
"scrollToBottom": true
|
||||
},
|
||||
"identities": {}
|
||||
}
|
35
development/states/create-vault-password.json
Normal file
35
development/states/create-vault-password.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"metamask": {
|
||||
"isInitialized": false,
|
||||
"isUnlocked": false,
|
||||
"currentDomain": "example.com",
|
||||
"rpcTarget": "https://rawtestrpc.metamask.io/",
|
||||
"identities": {},
|
||||
"unconfTxs": {},
|
||||
"accounts": {},
|
||||
"transactions": [],
|
||||
"network": "2",
|
||||
"seedWords": null,
|
||||
"isConfirmed": true,
|
||||
"unconfMsgs": {},
|
||||
"messages": [],
|
||||
"provider": {
|
||||
"type": "testnet"
|
||||
}
|
||||
},
|
||||
"appState": {
|
||||
"menuOpen": false,
|
||||
"currentView": {
|
||||
"name": "accounts",
|
||||
"detailView": null
|
||||
},
|
||||
"accountDetail": {
|
||||
"subview": "transactions"
|
||||
},
|
||||
"currentDomain": "extensions",
|
||||
"transForward": false,
|
||||
"isLoading": false,
|
||||
"warning": null
|
||||
},
|
||||
"identities": {}
|
||||
}
|
85
development/states/help.json
Normal file
85
development/states/help.json
Normal file
@ -0,0 +1,85 @@
|
||||
{
|
||||
"metamask": {
|
||||
"isInitialized": true,
|
||||
"isUnlocked": true,
|
||||
"currentDomain": "example.com",
|
||||
"rpcTarget": "https://rawtestrpc.metamask.io/",
|
||||
"identities": {
|
||||
"0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": {
|
||||
"name": "Wallet 1",
|
||||
"address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": {
|
||||
"name": "Wallet 2",
|
||||
"address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0xeb9e64b93097bc15f01f13eae97015c57ab64823": {
|
||||
"name": "Wallet 3",
|
||||
"address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0x704107d04affddd9b66ab9de3dd7b095852e9b69": {
|
||||
"name": "Wallet 4",
|
||||
"address": "0x704107d04affddd9b66ab9de3dd7b095852e9b69",
|
||||
"mayBeFauceting": false
|
||||
}
|
||||
},
|
||||
"unconfTxs": {},
|
||||
"accounts": {
|
||||
"0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": {
|
||||
"code": "0x",
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc"
|
||||
},
|
||||
"0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": {
|
||||
"code": "0x",
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b"
|
||||
},
|
||||
"0xeb9e64b93097bc15f01f13eae97015c57ab64823": {
|
||||
"code": "0x",
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823"
|
||||
},
|
||||
"0x704107d04affddd9b66ab9de3dd7b095852e9b69": {
|
||||
"code": "0x",
|
||||
"nonce": "0x0",
|
||||
"balance": "0x0",
|
||||
"address": "0x704107d04affddd9b66ab9de3dd7b095852e9b69"
|
||||
}
|
||||
},
|
||||
"transactions": [],
|
||||
"network": "2",
|
||||
"isConfirmed": true,
|
||||
"unconfMsgs": {},
|
||||
"messages": [],
|
||||
"provider": {
|
||||
"type": "testnet"
|
||||
},
|
||||
"selectedAccount": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc",
|
||||
"selectedAddress": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc",
|
||||
"seedWords": null
|
||||
},
|
||||
"appState": {
|
||||
"menuOpen": false,
|
||||
"currentView": {
|
||||
"name": "info"
|
||||
},
|
||||
"accountDetail": {
|
||||
"subview": "transactions",
|
||||
"accountExport": "none",
|
||||
"privateKey": ""
|
||||
},
|
||||
"currentDomain": "extensions",
|
||||
"transForward": true,
|
||||
"isLoading": false,
|
||||
"warning": null,
|
||||
"scrollToBottom": true
|
||||
},
|
||||
"identities": {}
|
||||
}
|
84
development/states/locked.json
Normal file
84
development/states/locked.json
Normal file
@ -0,0 +1,84 @@
|
||||
{
|
||||
"metamask": {
|
||||
"isInitialized": true,
|
||||
"isUnlocked": true,
|
||||
"currentDomain": "example.com",
|
||||
"rpcTarget": "https://rawtestrpc.metamask.io/",
|
||||
"identities": {
|
||||
"0x5f11b68b7d41633e74c6b18d8b8d147da52aedd6": {
|
||||
"name": "Wallet 1",
|
||||
"address": "0x5f11b68b7d41633e74c6b18d8b8d147da52aedd6",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0x843963b837841dad3b0f5969ff271108776616df": {
|
||||
"name": "Wallet 2",
|
||||
"address": "0x843963b837841dad3b0f5969ff271108776616df",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0x2cb215323857bec1c91e5db10fe87379a5cf129a": {
|
||||
"name": "Wallet 3",
|
||||
"address": "0x2cb215323857bec1c91e5db10fe87379a5cf129a",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0xc5091450b7548b0dce3a76b8d325929c39e648d1": {
|
||||
"name": "Wallet 4",
|
||||
"address": "0xc5091450b7548b0dce3a76b8d325929c39e648d1",
|
||||
"mayBeFauceting": false
|
||||
}
|
||||
},
|
||||
"unconfTxs": {},
|
||||
"accounts": {
|
||||
"0x5f11b68b7d41633e74c6b18d8b8d147da52aedd6": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0x5f11b68b7d41633e74c6b18d8b8d147da52aedd6"
|
||||
},
|
||||
"0x843963b837841dad3b0f5969ff271108776616df": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0x843963b837841dad3b0f5969ff271108776616df"
|
||||
},
|
||||
"0x2cb215323857bec1c91e5db10fe87379a5cf129a": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0x2cb215323857bec1c91e5db10fe87379a5cf129a"
|
||||
},
|
||||
"0xc5091450b7548b0dce3a76b8d325929c39e648d1": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0xc5091450b7548b0dce3a76b8d325929c39e648d1"
|
||||
}
|
||||
},
|
||||
"transactions": [],
|
||||
"selectedAddress": "0x843963b837841dad3b0f5969ff271108776616df",
|
||||
"network": "2",
|
||||
"isConfirmed": true,
|
||||
"unconfMsgs": {},
|
||||
"messages": [],
|
||||
"provider": {
|
||||
"type": "testnet"
|
||||
},
|
||||
"selectedAccount": "0x843963b837841dad3b0f5969ff271108776616df"
|
||||
},
|
||||
"appState": {
|
||||
"menuOpen": false,
|
||||
"currentView": {
|
||||
"name": "accountDetail"
|
||||
},
|
||||
"accountDetail": {
|
||||
"subview": "transactions",
|
||||
"accountExport": "none",
|
||||
"privateKey": ""
|
||||
},
|
||||
"currentDomain": "testfaucet.metamask.io",
|
||||
"transForward": false,
|
||||
"isLoading": false,
|
||||
"warning": null,
|
||||
"scrollToBottom": false
|
||||
},
|
||||
"identities": {}
|
||||
}
|
35
development/states/new-vault.json
Normal file
35
development/states/new-vault.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"metamask": {
|
||||
"isInitialized": false,
|
||||
"isUnlocked": false,
|
||||
"currentDomain": "example.com",
|
||||
"rpcTarget": "https://rawtestrpc.metamask.io/",
|
||||
"identities": {},
|
||||
"unconfTxs": {},
|
||||
"accounts": {},
|
||||
"transactions": [],
|
||||
"network": "2",
|
||||
"seedWords": null,
|
||||
"isConfirmed": false,
|
||||
"unconfMsgs": {},
|
||||
"messages": [],
|
||||
"provider": {
|
||||
"type": "testnet"
|
||||
}
|
||||
},
|
||||
"appState": {
|
||||
"menuOpen": false,
|
||||
"currentView": {
|
||||
"name": "accounts",
|
||||
"detailView": null
|
||||
},
|
||||
"accountDetail": {
|
||||
"subview": "transactions"
|
||||
},
|
||||
"currentDomain": "extensions",
|
||||
"transForward": true,
|
||||
"isLoading": false,
|
||||
"warning": null
|
||||
},
|
||||
"identities": {}
|
||||
}
|
70
development/states/show-seed-words.json
Normal file
70
development/states/show-seed-words.json
Normal file
@ -0,0 +1,70 @@
|
||||
{
|
||||
"metamask": {
|
||||
"isInitialized": false,
|
||||
"isUnlocked": true,
|
||||
"currentDomain": "example.com",
|
||||
"rpcTarget": "https://rawtestrpc.metamask.io/",
|
||||
"identities": {
|
||||
"0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": {
|
||||
"name": "Wallet 1",
|
||||
"address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": {
|
||||
"name": "Wallet 2",
|
||||
"address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b",
|
||||
"mayBeFauceting": false
|
||||
},
|
||||
"0xeb9e64b93097bc15f01f13eae97015c57ab64823": {
|
||||
"name": "Wallet 3",
|
||||
"address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823",
|
||||
"mayBeFauceting": false
|
||||
}
|
||||
},
|
||||
"unconfTxs": {},
|
||||
"accounts": {
|
||||
"0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc"
|
||||
},
|
||||
"0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b"
|
||||
},
|
||||
"0xeb9e64b93097bc15f01f13eae97015c57ab64823": {
|
||||
"balance": "0x0",
|
||||
"nonce": "0x0",
|
||||
"code": "0x",
|
||||
"address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823"
|
||||
}
|
||||
},
|
||||
"transactions": [],
|
||||
"network": "2",
|
||||
"seedWords": "debris dizzy just program just float decrease vacant alarm reduce speak stadium",
|
||||
"isConfirmed": true,
|
||||
"unconfMsgs": {},
|
||||
"messages": [],
|
||||
"provider": {
|
||||
"type": "testnet"
|
||||
}
|
||||
},
|
||||
"appState": {
|
||||
"menuOpen": false,
|
||||
"currentView": {
|
||||
"name": "createVaultComplete",
|
||||
"seedWords": "debris dizzy just program just float decrease vacant alarm reduce speak stadium"
|
||||
},
|
||||
"accountDetail": {
|
||||
"subview": "transactions"
|
||||
},
|
||||
"currentDomain": "extensions",
|
||||
"transForward": true,
|
||||
"isLoading": false,
|
||||
"warning": null
|
||||
},
|
||||
"identities": {}
|
||||
}
|
21
development/states/terms.json
Normal file
21
development/states/terms.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"metamask": {
|
||||
"accounts": {},
|
||||
"transactions": [],
|
||||
"identities": {},
|
||||
"network": "2",
|
||||
"isInitialized": false,
|
||||
"isUnlocked": false,
|
||||
"seedWords": null,
|
||||
"isConfirmed": false,
|
||||
"unconfTxs": {},
|
||||
"unconfMsgs": {},
|
||||
"messages": [],
|
||||
"provider": {
|
||||
"type": "testnet"
|
||||
}
|
||||
},
|
||||
"appState": {
|
||||
"currentDomain": "extensions"
|
||||
}
|
||||
}
|
@ -6,7 +6,8 @@
|
||||
"scripts": {
|
||||
"start": "gulp dev",
|
||||
"test": "mocha --require test/helper.js --compilers js:babel-register --recursive",
|
||||
"watch": "mocha watch --compilers js:babel-register --recursive"
|
||||
"watch": "mocha watch --compilers js:babel-register --recursive",
|
||||
"ui": "cd development && node genStates.js && beefy mocker.js:bundle.js --live --open"
|
||||
},
|
||||
"browserify": {
|
||||
"transform": [
|
||||
@ -93,6 +94,7 @@
|
||||
"mocha-eslint": "^2.1.1",
|
||||
"mocha-jsdom": "^1.1.0",
|
||||
"mocha-sinon": "^1.1.5",
|
||||
"qs": "^6.2.0",
|
||||
"sinon": "^1.17.3",
|
||||
"tape": "^4.5.1",
|
||||
"uglifyify": "^3.0.1",
|
||||
|
@ -17,7 +17,13 @@ function InfoScreen () {
|
||||
|
||||
InfoScreen.prototype.render = function () {
|
||||
var state = this.props
|
||||
var manifest = chrome.runtime.getManifest()
|
||||
var manifest
|
||||
try {
|
||||
manifest = chrome.runtime.getManifest()
|
||||
} catch (e) {
|
||||
manifest = { version: '2.0.0' }
|
||||
}
|
||||
|
||||
return (
|
||||
h('.flex-column.flex-grow', [
|
||||
|
||||
|
@ -13,6 +13,10 @@ function rootReducer (state, action) {
|
||||
// clone
|
||||
state = extend(state)
|
||||
|
||||
if (action.type === 'GLOBAL_FORCE_UPDATE') {
|
||||
return action.value
|
||||
}
|
||||
|
||||
//
|
||||
// Identities
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user