diff --git a/README.md b/README.md index 98207bcb2..f0d38192d 100644 --- a/README.md +++ b/README.md @@ -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: diff --git a/app/scripts/popup.js b/app/scripts/popup.js index 5c5cf0455..2e5b98896 100644 --- a/app/scripts/popup.js +++ b/app/scripts/popup.js @@ -54,12 +54,14 @@ function setupControllerConnection (stream, cb) { } function getCurrentDomain (cb) { + const 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, '') + return cb(null, unknown) } cb(null, currentDomain) }) @@ -78,7 +80,7 @@ function setupApp (err, opts) { alert(err.stack) throw err } - + clearNotifications() var container = document.getElementById('app-content') diff --git a/development/beefy.js b/development/beefy.js new file mode 100644 index 000000000..0ed40f177 --- /dev/null +++ b/development/beefy.js @@ -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!') +} diff --git a/development/fonts b/development/fonts new file mode 120000 index 000000000..77c7651c1 --- /dev/null +++ b/development/fonts @@ -0,0 +1 @@ +../app/fonts \ No newline at end of file diff --git a/development/genStates.js b/development/genStates.js new file mode 100644 index 000000000..39a672ee0 --- /dev/null +++ b/development/genStates.js @@ -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) diff --git a/development/images b/development/images new file mode 120000 index 000000000..38cd3b8d4 --- /dev/null +++ b/development/images @@ -0,0 +1 @@ +../app/images \ No newline at end of file diff --git a/development/index.html b/development/index.html new file mode 100644 index 000000000..02fd01b03 --- /dev/null +++ b/development/index.html @@ -0,0 +1,37 @@ + + + + + MetaMask + + + + +
+ + + + +
+ + +
+ + + diff --git a/development/mockStore.js b/development/mockStore.js new file mode 100644 index 000000000..1299ee1dc --- /dev/null +++ b/development/mockStore.js @@ -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) +} diff --git a/development/mocker.js b/development/mocker.js new file mode 100644 index 000000000..098d46c75 --- /dev/null +++ b/development/mocker.js @@ -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) + diff --git a/development/selector.js b/development/selector.js new file mode 100644 index 000000000..b58904cdf --- /dev/null +++ b/development/selector.js @@ -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) + })) + +} diff --git a/development/states.js b/development/states.js new file mode 100644 index 000000000..9190ce175 --- /dev/null +++ b/development/states.js @@ -0,0 +1 @@ +module.exports = {"account detail":{"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":{}},"accounts":{"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":{}},"config":{"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":{}},"create vault password":{"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":{}},"help":{"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":{}},"locked":{"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":{}},"new vault":{"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":{}},"show seed words":{"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":{}},"terms":{"metamask":{"accounts":{},"transactions":[],"identities":{},"network":"2","isInitialized":false,"isUnlocked":false,"seedWords":null,"isConfirmed":false,"unconfTxs":{},"unconfMsgs":{},"messages":[],"provider":{"type":"testnet"}},"appState":{"currentDomain":"extensions"}}} \ No newline at end of file diff --git a/development/states.json b/development/states.json new file mode 100644 index 000000000..b2776edcc --- /dev/null +++ b/development/states.json @@ -0,0 +1 @@ +module.exports = [{"account detail":{"metamask":{"isInitialized":true,"isUnlocked":true,"currentDomain":"example.com","rpcTarget":"https://rawtestrpc.metamask.io/","identities":{"0x5f11b68b7d41633e74c6b18d8b8d147da52aedd6":{"name":"Secret Wallet!","address":"0x5f11b68b7d41633e74c6b18d8b8d147da52aedd6","mayBeFauceting":false},"0x843963b837841dad3b0f5969ff271108776616df":{"name":"Main Wallet","address":"0x843963b837841dad3b0f5969ff271108776616df","mayBeFauceting":false},"0x2cb215323857bec1c91e5db10fe87379a5cf129a":{"name":"Wallet 3","address":"0x2cb215323857bec1c91e5db10fe87379a5cf129a","mayBeFauceting":false}},"unconfTxs":{},"accounts":{"0x5f11b68b7d41633e74c6b18d8b8d147da52aedd6":{"code":"0x","balance":"0x0","nonce":"0x0","address":"0x5f11b68b7d41633e74c6b18d8b8d147da52aedd6"},"0x843963b837841dad3b0f5969ff271108776616df":{"code":"0x","balance":"0x0","nonce":"0x0","address":"0x843963b837841dad3b0f5969ff271108776616df"},"0x2cb215323857bec1c91e5db10fe87379a5cf129a":{"code":"0x","balance":"0x0","nonce":"0x0","address":"0x2cb215323857bec1c91e5db10fe87379a5cf129a"}},"transactions":[],"selectedAddress":"0x843963b837841dad3b0f5969ff271108776616df","network":"2","seedWords":null,"isConfirmed":true,"unconfMsgs":{},"messages":[],"provider":{"type":"testnet"},"selectedAccount":"0x843963b837841dad3b0f5969ff271108776616df"},"appState":{"menuOpen":false,"currentView":{"name":"accountDetail","detailView":null,"context":"0x843963b837841dad3b0f5969ff271108776616df"},"accountDetail":{"subview":"transactions"},"currentDomain":"127.0.0.1:9966","transForward":true,"isLoading":false,"warning":null},"identities":{}}},{"accounts":{"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":{}}},{"config":{"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":{}}},{"create vault password":{"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":{}}},{"help":{"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":{}}},{"locked":{"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":{}}},{"new vault":{"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":{}}},{"show seed words":{"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":false,"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":{}}},{"terms":{"metamask":{"accounts":{},"transactions":[],"identities":{},"network":"2","isInitialized":false,"isUnlocked":false,"seedWords":null,"isConfirmed":false,"unconfTxs":{},"unconfMsgs":{},"messages":[],"provider":{"type":"testnet"}},"appState":{"currentDomain":"extensions"}}}] \ No newline at end of file diff --git a/development/states/account-detail.json b/development/states/account-detail.json new file mode 100644 index 000000000..533d6e1a2 --- /dev/null +++ b/development/states/account-detail.json @@ -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": {} +} \ No newline at end of file diff --git a/development/states/accounts.json b/development/states/accounts.json new file mode 100644 index 000000000..df3eb8132 --- /dev/null +++ b/development/states/accounts.json @@ -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": {} +} \ No newline at end of file diff --git a/development/states/config.json b/development/states/config.json new file mode 100644 index 000000000..2e59641d5 --- /dev/null +++ b/development/states/config.json @@ -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": {} +} \ No newline at end of file diff --git a/development/states/create-vault-password.json b/development/states/create-vault-password.json new file mode 100644 index 000000000..2253ba639 --- /dev/null +++ b/development/states/create-vault-password.json @@ -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": {} +} \ No newline at end of file diff --git a/development/states/help.json b/development/states/help.json new file mode 100644 index 000000000..9c2c4f0d3 --- /dev/null +++ b/development/states/help.json @@ -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": {} +} \ No newline at end of file diff --git a/development/states/locked.json b/development/states/locked.json new file mode 100644 index 000000000..944888798 --- /dev/null +++ b/development/states/locked.json @@ -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": {} +} \ No newline at end of file diff --git a/development/states/new-vault.json b/development/states/new-vault.json new file mode 100644 index 000000000..18b4e7427 --- /dev/null +++ b/development/states/new-vault.json @@ -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": {} +} \ No newline at end of file diff --git a/development/states/show-seed-words.json b/development/states/show-seed-words.json new file mode 100644 index 000000000..19be51fbd --- /dev/null +++ b/development/states/show-seed-words.json @@ -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": {} +} diff --git a/development/states/terms.json b/development/states/terms.json new file mode 100644 index 000000000..6cc52ad36 --- /dev/null +++ b/development/states/terms.json @@ -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" + } +} \ No newline at end of file diff --git a/package.json b/package.json index efa652730..2aca46948 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/ui/app/info.js b/ui/app/info.js index a473f5921..d97998fd7 100644 --- a/ui/app/info.js +++ b/ui/app/info.js @@ -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', [ diff --git a/ui/app/reducers.js b/ui/app/reducers.js index 17f94f230..f198758ea 100644 --- a/ui/app/reducers.js +++ b/ui/app/reducers.js @@ -13,6 +13,10 @@ function rootReducer (state, action) { // clone state = extend(state) + if (action.type === 'GLOBAL_FORCE_UPDATE') { + return action.value + } + // // Identities //