aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app
diff options
context:
space:
mode:
authorFrankie <frankie.pangilinan@consensys.net>2016-06-22 06:04:00 +0800
committerFrankie <frankie.pangilinan@consensys.net>2016-06-22 06:04:00 +0800
commitcf663f1104697440121d32cc6db2a8a1d5d54c5a (patch)
tree3ed4b8b9fe8c85f3b3a5bf68482c3fb9967f2de5 /ui/app
parent265725c6edd62a7f46a9b9cf5a443cf01f0ff00c (diff)
parentdc2ef967028723afe9fe1efd669754723e38a4f0 (diff)
downloadtangerine-wallet-browser-cf663f1104697440121d32cc6db2a8a1d5d54c5a.tar
tangerine-wallet-browser-cf663f1104697440121d32cc6db2a8a1d5d54c5a.tar.gz
tangerine-wallet-browser-cf663f1104697440121d32cc6db2a8a1d5d54c5a.tar.bz2
tangerine-wallet-browser-cf663f1104697440121d32cc6db2a8a1d5d54c5a.tar.lz
tangerine-wallet-browser-cf663f1104697440121d32cc6db2a8a1d5d54c5a.tar.xz
tangerine-wallet-browser-cf663f1104697440121d32cc6db2a8a1d5d54c5a.tar.zst
tangerine-wallet-browser-cf663f1104697440121d32cc6db2a8a1d5d54c5a.zip
Fix conflict
Diffstat (limited to 'ui/app')
-rw-r--r--ui/app/account-detail.js26
-rw-r--r--ui/app/accounts/account-panel.js14
-rw-r--r--ui/app/accounts/index.js101
-rw-r--r--ui/app/actions.js139
-rw-r--r--ui/app/app.js61
-rw-r--r--ui/app/components/account-export.js21
-rw-r--r--ui/app/components/account-panel.js20
-rw-r--r--ui/app/components/drop-menu-item.js8
-rw-r--r--ui/app/components/editable-label.js21
-rw-r--r--ui/app/components/eth-balance.js5
-rw-r--r--ui/app/components/identicon.js6
-rw-r--r--ui/app/components/mascot.js15
-rw-r--r--ui/app/components/network.js57
-rw-r--r--ui/app/components/panel.js9
-rw-r--r--ui/app/components/pending-msg.js12
-rw-r--r--ui/app/components/pending-tx.js10
-rw-r--r--ui/app/components/template.js9
-rw-r--r--ui/app/components/transaction-list-item-icon.js13
-rw-r--r--ui/app/components/transaction-list-item.js30
-rw-r--r--ui/app/components/transaction-list.js25
-rw-r--r--ui/app/conf-tx.js23
-rw-r--r--ui/app/config.js49
-rw-r--r--ui/app/first-time/create-vault-complete.js11
-rw-r--r--ui/app/first-time/create-vault.js17
-rw-r--r--ui/app/first-time/disclaimer.js13
-rw-r--r--ui/app/first-time/init-menu.js19
-rw-r--r--ui/app/first-time/restore-vault.js16
-rw-r--r--ui/app/info.js142
-rw-r--r--ui/app/loading.js9
-rw-r--r--ui/app/recover-seed/confirmation.js23
-rw-r--r--ui/app/reducers.js7
-rw-r--r--ui/app/reducers/app.js612
-rw-r--r--ui/app/reducers/identities.js5
-rw-r--r--ui/app/reducers/metamask.js185
-rw-r--r--ui/app/root.js10
-rw-r--r--ui/app/send.js27
-rw-r--r--ui/app/settings.js25
-rw-r--r--ui/app/store.js3
-rw-r--r--ui/app/template.js11
-rw-r--r--ui/app/unlock.js21
-rw-r--r--ui/app/util.js99
41 files changed, 918 insertions, 1011 deletions
diff --git a/ui/app/account-detail.js b/ui/app/account-detail.js
index c248d9105..dfafb60cb 100644
--- a/ui/app/account-detail.js
+++ b/ui/app/account-detail.js
@@ -17,7 +17,7 @@ const EditableLabel = require('./components/editable-label')
module.exports = connect(mapStateToProps)(AccountDetailScreen)
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {
identities: state.metamask.identities,
accounts: state.metamask.accounts,
@@ -31,17 +31,15 @@ function mapStateToProps(state) {
}
inherits(AccountDetailScreen, Component)
-function AccountDetailScreen() {
+function AccountDetailScreen () {
Component.call(this)
}
-AccountDetailScreen.prototype.render = function() {
+AccountDetailScreen.prototype.render = function () {
var props = this.props
var selected = props.address || Object.keys(props.accounts)[0]
var identity = props.identities[selected]
var account = props.accounts[selected]
- var accountDetail = props.accountDetail
- var transactions = props.transactions
return (
@@ -88,7 +86,7 @@ AccountDetailScreen.prototype.render = function() {
style: {
height: '62px',
paddingTop: '8px',
- }
+ },
}, [
h(EditableLabel, {
textValue: identity ? identity.name : '',
@@ -101,7 +99,7 @@ AccountDetailScreen.prototype.render = function() {
}, [
// What is shown when not editing + edit text:
- h('label.editing-label',[h('.edit-text','edit')]),
+ h('label.editing-label', [h('.edit-text', 'edit')]),
h('h2.font-medium.color-forest', {name: 'edit'}, identity && identity.name),
]),
]),
@@ -124,7 +122,7 @@ AccountDetailScreen.prototype.render = function() {
h('img.cursor-pointer.color-orange', {
src: 'images/copy.svg',
onClick: () => copyToClipboard(ethUtil.toChecksumAddress(selected)),
- style:{
+ style: {
margin: '0px 5px',
},
}),
@@ -179,7 +177,7 @@ AccountDetailScreen.prototype.render = function() {
)
}
-AccountDetailScreen.prototype.subview = function() {
+AccountDetailScreen.prototype.subview = function () {
var subview
try {
subview = this.props.accountDetail.subview
@@ -198,7 +196,7 @@ AccountDetailScreen.prototype.subview = function() {
}
}
-AccountDetailScreen.prototype.transactionList = function() {
+AccountDetailScreen.prototype.transactionList = function () {
const { transactions, unconfTxs, unconfMsgs, address, network } = this.props
var txsToRender = transactions
@@ -214,18 +212,18 @@ AccountDetailScreen.prototype.transactionList = function() {
network,
unconfTxs,
unconfMsgs,
- viewPendingTx:(txId) => {
+ viewPendingTx: (txId) => {
this.props.dispatch(actions.viewPendingTx(txId))
- }
+ },
})
}
-AccountDetailScreen.prototype.navigateToAccounts = function(event){
+AccountDetailScreen.prototype.navigateToAccounts = function (event) {
event.stopPropagation()
this.props.dispatch(actions.showAccountsPage())
}
-AccountDetailScreen.prototype.requestAccountExport = function() {
+AccountDetailScreen.prototype.requestAccountExport = function () {
this.props.dispatch(actions.requestExportAccount())
}
diff --git a/ui/app/accounts/account-panel.js b/ui/app/accounts/account-panel.js
index ddccfa529..1c9e84414 100644
--- a/ui/app/accounts/account-panel.js
+++ b/ui/app/accounts/account-panel.js
@@ -9,18 +9,15 @@ const Identicon = require('../components/identicon')
module.exports = NewComponent
-
inherits(NewComponent, Component)
-function NewComponent() {
+function NewComponent () {
Component.call(this)
}
-NewComponent.prototype.render = function() {
+NewComponent.prototype.render = function () {
const identity = this.props.identity
- var mayBeFauceting = identity.mayBeFauceting
var isSelected = this.props.selectedAddress === identity.address
var account = this.props.accounts[identity.address]
- var isFauceting = mayBeFauceting && account.balance === '0x0'
const selectedClass = isSelected ? '.selected' : ''
return (
@@ -35,7 +32,7 @@ NewComponent.prototype.render = function() {
h('.identicon-wrapper.flex-column.flex-center.select-none', [
this.pendingOrNot(),
h(Identicon, {
- address: identity.address
+ address: identity.address,
}),
]),
@@ -70,16 +67,19 @@ NewComponent.prototype.render = function() {
event.preventDefault()
copyToClipboard(ethUtil.toChecksumAddress(identity.address))
},
+<<<<<<< HEAD
style:{
margin: '0px 5px',
},
+=======
+>>>>>>> master
}),
]),
])
)
}
-NewComponent.prototype.pendingOrNot = function() {
+NewComponent.prototype.pendingOrNot = function () {
const pending = this.props.pending
if (pending.length === 0) return null
return h('.pending-dot', pending.length)
diff --git a/ui/app/accounts/index.js b/ui/app/accounts/index.js
index 8215a559a..775df400b 100644
--- a/ui/app/accounts/index.js
+++ b/ui/app/accounts/index.js
@@ -2,7 +2,6 @@ const inherits = require('util').inherits
const Component = require('react').Component
const h = require('react-hyperscript')
const connect = require('react-redux').connect
-const extend = require('xtend')
const actions = require('../actions')
const valuesFor = require('../util').valuesFor
const findDOMNode = require('react-dom').findDOMNode
@@ -10,8 +9,7 @@ const AccountPanel = require('./account-panel')
module.exports = connect(mapStateToProps)(AccountsScreen)
-
-function mapStateToProps(state) {
+function mapStateToProps (state) {
const pendingTxs = valuesFor(state.metamask.unconfTxs)
const pendingMsgs = valuesFor(state.metamask.unconfMsgs)
const pending = pendingTxs.concat(pendingMsgs)
@@ -28,12 +26,11 @@ function mapStateToProps(state) {
}
inherits(AccountsScreen, Component)
-function AccountsScreen() {
+function AccountsScreen () {
Component.call(this)
}
-
-AccountsScreen.prototype.render = function() {
+AccountsScreen.prototype.render = function () {
var state = this.props
var identityList = valuesFor(state.identities)
var unconfTxList = valuesFor(state.unconfTxs)
@@ -63,48 +60,48 @@ AccountsScreen.prototype.render = function() {
height: '418px',
overflowY: 'auto',
overflowX: 'hidden',
- }
+ },
},
- [
- identityList.map((identity) => {
- const pending = this.props.pending.filter((txOrMsg) => {
- if ('txParams' in txOrMsg) {
- return txOrMsg.txParams.from === identity.address
- } else if ('msgParams' in txOrMsg) {
- return txOrMsg.msgParams.from === identity.address
- } else {
- return false
- }
- })
-
- return h(AccountPanel, {
- key: `acct-panel-${identity.address}`,
- identity,
- selectedAddress: this.props.selectedAddress,
- accounts: this.props.accounts,
- onShowDetail: this.onShowDetail.bind(this),
- pending,
- })
- }),
-
- h('hr.horizontal-line', {key: 'horizontal-line1'}),
- h('div.footer.hover-white.pointer', {
- key: 'reveal-account-bar',
- onClick:() => {
- actions.revealAccount()
- },
- style: {
- display: 'flex',
- flex: '1 0 auto',
- height: '40px',
- paddint: '10px',
- justifyContent: 'center',
- alignItems: 'center',
- }
- }, [
- h('i.fa.fa-plus.fa-lg', {key: ''}),
+ [
+ identityList.map((identity) => {
+ const pending = this.props.pending.filter((txOrMsg) => {
+ if ('txParams' in txOrMsg) {
+ return txOrMsg.txParams.from === identity.address
+ } else if ('msgParams' in txOrMsg) {
+ return txOrMsg.msgParams.from === identity.address
+ } else {
+ return false
+ }
+ })
+
+ return h(AccountPanel, {
+ key: `acct-panel-${identity.address}`,
+ identity,
+ selectedAddress: this.props.selectedAddress,
+ accounts: this.props.accounts,
+ onShowDetail: this.onShowDetail.bind(this),
+ pending,
+ })
+ }),
+
+ h('hr.horizontal-line', {key: 'horizontal-line1'}),
+ h('div.footer.hover-white.pointer', {
+ key: 'reveal-account-bar',
+ onClick: () => {
+ actions.revealAccount()
+ },
+ style: {
+ display: 'flex',
+ flex: '1 0 auto',
+ height: '40px',
+ paddint: '10px',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ }, [
+ h('i.fa.fa-plus.fa-lg', {key: ''}),
+ ]),
]),
- ]),
unconfTxList.length ? (
@@ -123,7 +120,7 @@ AccountsScreen.prototype.render = function() {
}
// If a new account was revealed, scroll to the bottom
-AccountsScreen.prototype.componentDidUpdate = function(){
+AccountsScreen.prototype.componentDidUpdate = function () {
const scrollToBottom = this.props.scrollToBottom
if (scrollToBottom) {
@@ -133,27 +130,27 @@ AccountsScreen.prototype.componentDidUpdate = function(){
}
}
-AccountsScreen.prototype.navigateToConfTx = function(){
+AccountsScreen.prototype.navigateToConfTx = function () {
event.stopPropagation()
this.props.dispatch(actions.showConfTxPage())
}
-AccountsScreen.prototype.onSelect = function(address, event){
+AccountsScreen.prototype.onSelect = function (address, event) {
event.stopPropagation()
// if already selected, deselect
if (this.props.selectedAddress === address) address = null
this.props.dispatch(actions.setSelectedAddress(address))
}
-AccountsScreen.prototype.onShowDetail = function(address, event){
+AccountsScreen.prototype.onShowDetail = function (address, event) {
event.stopPropagation()
this.props.dispatch(actions.showAccountDetail(address))
}
-AccountsScreen.prototype.onRevealAccount = function() {
+AccountsScreen.prototype.onRevealAccount = function () {
this.props.dispatch(actions.revealAccount())
}
-AccountsScreen.prototype.goHome = function() {
+AccountsScreen.prototype.goHome = function () {
this.props.dispatch(actions.goHome())
}
diff --git a/ui/app/actions.js b/ui/app/actions.js
index e178d2340..0cbc3b9e6 100644
--- a/ui/app/actions.js
+++ b/ui/app/actions.js
@@ -114,11 +114,11 @@ var actions = {
module.exports = actions
var _accountManager = null
-function _setAccountManager(accountManager){
+function _setAccountManager (accountManager) {
_accountManager = accountManager
}
-function goHome() {
+function goHome () {
return {
type: actions.GO_HOME,
}
@@ -126,28 +126,22 @@ function goHome() {
// menu state
-function toggleMenu() {
+function toggleMenu () {
return {
type: actions.TOGGLE_MENU,
}
}
-function closeMenu() {
+function closeMenu () {
return {
type: actions.SET_MENU_STATE,
value: false,
}
}
-function getNetworkStatus(){
- return {
- type: actions.getNetworkStatus,
- }
-}
-
// async actions
-function tryUnlockMetamask(password) {
+function tryUnlockMetamask (password) {
return (dispatch) => {
dispatch(actions.unlockInProgress())
_accountManager.submitPassword(password, (err, selectedAccount) => {
@@ -160,22 +154,25 @@ function tryUnlockMetamask(password) {
}
}
-function createNewVault(password, entropy) {
+function createNewVault (password, entropy) {
return (dispatch) => {
dispatch(actions.createNewVaultInProgress())
_accountManager.createNewVault(password, entropy, (err, result) => {
+ if (err) {
+ return dispatch(actions.showWarning(err.message))
+ }
dispatch(actions.showNewVaultSeed(result))
})
}
}
-function revealSeedConfirmation() {
+function revealSeedConfirmation () {
return {
type: this.REVEAL_SEED_CONFIRMATION,
}
}
-function requestRevealSeed(password) {
+function requestRevealSeed (password) {
return (dispatch) => {
dispatch(actions.showLoadingIndication())
_accountManager.tryPassword(password, (err, seed) => {
@@ -189,7 +186,7 @@ function requestRevealSeed(password) {
}
}
-function recoverFromSeed(password, seed) {
+function recoverFromSeed (password, seed) {
return (dispatch) => {
// dispatch(actions.createNewVaultInProgress())
dispatch(actions.showLoadingIndication())
@@ -199,23 +196,23 @@ function recoverFromSeed(password, seed) {
var account = Object.keys(metamaskState.identities)[0]
dispatch(actions.unlockMetamask(account))
- })
+ })
}
}
-function showInfoPage() {
+function showInfoPage () {
return {
type: actions.SHOW_INFO_PAGE,
}
}
-function setSelectedAddress(address) {
+function setSelectedAddress (address) {
return (dispatch) => {
_accountManager.setSelectedAddress(address)
}
}
-function revealAccount() {
+function revealAccount () {
return (dispatch) => {
dispatch(actions.showLoadingIndication())
_accountManager.revealAccount((err) => {
@@ -228,7 +225,7 @@ function revealAccount() {
}
}
-function signMsg(msgData) {
+function signMsg (msgData) {
return (dispatch) => {
dispatch(actions.showLoadingIndication())
@@ -241,7 +238,7 @@ function signMsg(msgData) {
}
}
-function signTx(txData) {
+function signTx (txData) {
return (dispatch) => {
dispatch(actions.showLoadingIndication())
@@ -255,7 +252,7 @@ function signTx(txData) {
}
}
-function sendTx(txData) {
+function sendTx (txData) {
return (dispatch) => {
_accountManager.approveTransaction(txData.id, (err) => {
if (err) {
@@ -268,26 +265,26 @@ function sendTx(txData) {
}
}
-function completedTx(id) {
+function completedTx (id) {
return {
type: actions.COMPLETED_TX,
id,
}
}
-function txError(err) {
+function txError (err) {
return {
type: actions.TRANSACTION_ERROR,
message: err.message,
}
}
-function cancelMsg(msgData){
+function cancelMsg (msgData) {
_accountManager.cancelMessage(msgData.id)
return actions.completedTx(msgData.id)
}
-function cancelTx(txData){
+function cancelTx (txData) {
_accountManager.cancelTransaction(txData.id)
return actions.completedTx(txData.id)
}
@@ -296,29 +293,32 @@ function cancelTx(txData){
// initialize screen
//
-
-function showCreateVault() {
+function showCreateVault () {
return {
type: actions.SHOW_CREATE_VAULT,
}
}
-function showRestoreVault() {
+function showRestoreVault () {
return {
type: actions.SHOW_RESTORE_VAULT,
}
}
-function showInitializeMenu() {
+function showInitializeMenu () {
return {
type: actions.SHOW_INIT_MENU,
}
}
-function agreeToDisclaimer() {
+function agreeToDisclaimer () {
return (dispatch) => {
dispatch(this.showLoadingIndication())
_accountManager.agreeToDisclaimer((err) => {
+ if (err) {
+ return dispatch(actions.showWarning(err.message))
+ }
+
dispatch(this.hideLoadingIndication())
dispatch({
type: this.AGREE_TO_DISCLAIMER,
@@ -327,13 +327,13 @@ function agreeToDisclaimer() {
}
}
-function createNewVaultInProgress() {
+function createNewVaultInProgress () {
return {
type: actions.CREATE_NEW_VAULT_IN_PROGRESS,
}
}
-function showNewVaultSeed(seed) {
+function showNewVaultSeed (seed) {
return {
type: actions.SHOW_NEW_VAULT_SEED,
value: seed,
@@ -344,48 +344,56 @@ function showNewVaultSeed(seed) {
// unlock screen
//
-function unlockInProgress() {
+function unlockInProgress () {
return {
type: actions.UNLOCK_IN_PROGRESS,
}
}
-function unlockFailed() {
+function unlockFailed () {
return {
type: actions.UNLOCK_FAILED,
}
}
-function unlockMetamask(account) {
+function unlockMetamask (account) {
return {
type: actions.UNLOCK_METAMASK,
value: account,
}
}
-function updateMetamaskState(newState) {
+function updateMetamaskState (newState) {
return {
type: actions.UPDATE_METAMASK_STATE,
value: newState,
}
}
-function lockMetamask() {
+function lockMetamask () {
return (dispatch) => {
_accountManager.setLocked((err) => {
+ dispatch(actions.hideLoadingIndication())
+ if (err) {
+ return dispatch(actions.showWarning(err.message))
+ }
+
dispatch({
type: actions.LOCK_METAMASK,
})
- dispatch(actions.hideLoadingIndication())
})
}
}
-function showAccountDetail(address) {
+function showAccountDetail (address) {
return (dispatch) => {
dispatch(actions.showLoadingIndication())
_accountManager.setSelectedAddress(address, (err, address) => {
dispatch(actions.hideLoadingIndication())
+ if (err) {
+ return dispatch(actions.showWarning(err.message))
+ }
+
dispatch({
type: actions.SHOW_ACCOUNT_DETAIL,
value: address,
@@ -394,61 +402,66 @@ function showAccountDetail(address) {
}
}
-function backToAccountDetail(address) {
+function backToAccountDetail (address) {
return {
type: actions.BACK_TO_ACCOUNT_DETAIL,
value: address,
}
}
-function clearSeedWordCache(account) {
+function clearSeedWordCache (account) {
return {
type: actions.CLEAR_SEED_WORD_CACHE,
value: account,
}
}
-function confirmSeedWords() {
+function confirmSeedWords () {
return (dispatch) => {
dispatch(actions.showLoadingIndication())
_accountManager.clearSeedWordCache((err, account) => {
+ dispatch(actions.hideLoadingIndication())
+ if (err) {
+ return dispatch(actions.showWarning(err.message))
+ }
+
console.log('Seed word cache cleared. ' + account)
dispatch(actions.showAccountDetail(account))
})
}
}
-function showAccountsPage() {
+function showAccountsPage () {
return {
type: actions.SHOW_ACCOUNTS_PAGE,
}
}
-function showConfTxPage() {
+function showConfTxPage () {
return {
type: actions.SHOW_CONF_TX_PAGE,
}
}
-function nextTx() {
+function nextTx () {
return {
type: actions.NEXT_TX,
}
}
-function viewPendingTx(txId) {
+function viewPendingTx (txId) {
return {
type: actions.VIEW_PENDING_TX,
value: txId,
}
}
-function previousTx() {
+function previousTx () {
return {
type: actions.PREVIOUS_TX,
}
}
-function showConfigPage(transitionForward = true) {
+function showConfigPage (transitionForward = true) {
return {
type: actions.SHOW_CONFIG_PAGE,
value: transitionForward,
@@ -459,7 +472,7 @@ function showConfigPage(transitionForward = true) {
// config
//
-function setRpcTarget(newRpc) {
+function setRpcTarget (newRpc) {
_accountManager.setRpcTarget(newRpc)
return {
type: actions.SET_RPC_TARGET,
@@ -467,7 +480,7 @@ function setRpcTarget(newRpc) {
}
}
-function setProviderType(type) {
+function setProviderType (type) {
_accountManager.setProviderType(type)
return {
type: actions.SET_PROVIDER_TYPE,
@@ -475,51 +488,51 @@ function setProviderType(type) {
}
}
-function useEtherscanProvider() {
+function useEtherscanProvider () {
_accountManager.useEtherscanProvider()
return {
type: actions.USE_ETHERSCAN_PROVIDER,
}
}
-function showLoadingIndication() {
+function showLoadingIndication () {
return {
type: actions.SHOW_LOADING,
}
}
-function hideLoadingIndication() {
+function hideLoadingIndication () {
return {
type: actions.HIDE_LOADING,
}
}
-function displayWarning(text) {
+function displayWarning (text) {
return {
type: actions.DISPLAY_WARNING,
value: text,
}
}
-function hideWarning() {
+function hideWarning () {
return {
type: actions.HIDE_WARNING,
}
}
-function requestExportAccount() {
+function requestExportAccount () {
return {
type: actions.REQUEST_ACCOUNT_EXPORT,
}
}
-function exportAccount(address) {
+function exportAccount (address) {
var self = this
- return function(dispatch) {
+ return function (dispatch) {
dispatch(self.showLoadingIndication())
- _accountManager.exportAccount(address, function(err, result) {
+ _accountManager.exportAccount(address, function (err, result) {
dispatch(self.hideLoadingIndication())
if (err) {
@@ -532,14 +545,14 @@ function exportAccount(address) {
}
}
-function showPrivateKey(key) {
+function showPrivateKey (key) {
return {
type: actions.SHOW_PRIVATE_KEY,
value: key,
}
}
-function saveAccountLabel(account, label) {
+function saveAccountLabel (account, label) {
return (dispatch) => {
dispatch(actions.showLoadingIndication())
_accountManager.saveAccountLabel(account, label, (err) => {
@@ -555,7 +568,7 @@ function saveAccountLabel(account, label) {
}
}
-function showSendPage() {
+function showSendPage () {
return {
type: actions.SHOW_SEND_PAGE,
}
diff --git a/ui/app/app.js b/ui/app/app.js
index 6088d17e4..7204fb098 100644
--- a/ui/app/app.js
+++ b/ui/app/app.js
@@ -1,10 +1,7 @@
const inherits = require('util').inherits
-const React = require('react')
const Component = require('react').Component
-const PropTypes = require('react').PropTypes
const connect = require('react-redux').connect
const h = require('react-hyperscript')
-const extend = require('xtend')
const actions = require('./actions')
const ReactCSSTransitionGroup = require('react-addons-css-transition-group')
// init
@@ -25,7 +22,6 @@ const ConfigScreen = require('./config')
const RevealSeedConfirmation = require('./recover-seed/confirmation')
const InfoScreen = require('./info')
const LoadingIndicator = require('./loading')
-const txHelper = require('../lib/tx-helper')
const SandwichExpando = require('sandwich-expando')
const MenuDroppo = require('menu-droppo')
const DropMenuItem = require('./components/drop-menu-item')
@@ -33,11 +29,10 @@ const NetworkIndicator = require('./components/network')
module.exports = connect(mapStateToProps)(App)
-
inherits(App, Component)
-function App() { Component.call(this) }
+function App () { Component.call(this) }
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {
// state from plugin
isConfirmed: state.metamask.isConfirmed,
@@ -54,9 +49,8 @@ function mapStateToProps(state) {
}
}
-App.prototype.render = function() {
+App.prototype.render = function () {
var props = this.props
- var view = props.currentView.name
var transForward = props.transForward
return (
@@ -65,7 +59,7 @@ App.prototype.render = function() {
style: {
// Windows was showing a vertical scroll bar:
overflow: 'hidden',
- }
+ },
}, [
h(LoadingIndicator),
@@ -80,7 +74,7 @@ App.prototype.render = function() {
style: {
height: '380px',
width: '360px',
- }
+ },
}, [
h(ReactCSSTransitionGroup, {
className: 'css-transition-group',
@@ -95,7 +89,7 @@ App.prototype.render = function() {
)
}
-App.prototype.renderAppBar = function(){
+App.prototype.renderAppBar = function () {
const props = this.props
const state = this.state || {}
const isNetworkMenuOpen = state.isNetworkMenuOpen || false
@@ -117,11 +111,11 @@ App.prototype.renderAppBar = function(){
h(NetworkIndicator, {
network: this.props.network,
- onClick:(event) => {
+ onClick: (event) => {
event.preventDefault()
event.stopPropagation()
this.setState({ isNetworkMenuOpen: !isNetworkMenuOpen })
- }
+ },
}),
// metamask name
@@ -144,16 +138,14 @@ App.prototype.renderAppBar = function(){
)
}
-App.prototype.renderNetworkDropdown = function() {
+App.prototype.renderNetworkDropdown = function () {
const props = this.props
const state = this.state || {}
const isOpen = state.isNetworkMenuOpen
- const checked = h('i.fa.fa-check.fa-lg', { ariaHidden: true })
-
return h(MenuDroppo, {
isOpen,
- onClickOutside:(event) => {
+ onClickOutside: (event) => {
this.setState({ isNetworkMenuOpen: !isOpen })
},
style: {
@@ -173,28 +165,28 @@ App.prototype.renderNetworkDropdown = function() {
h(DropMenuItem, {
label: 'Main Ethereum Network',
- closeMenu:() => this.setState({ isNetworkMenuOpen: false }),
- action:() => props.dispatch(actions.setProviderType('mainnet')),
+ closeMenu: () => this.setState({ isNetworkMenuOpen: false }),
+ action: () => props.dispatch(actions.setProviderType('mainnet')),
icon: h('.menu-icon.ether-icon'),
}),
h(DropMenuItem, {
label: 'Morden Test Network',
- closeMenu:() => this.setState({ isNetworkMenuOpen: false }),
- action:() => props.dispatch(actions.setProviderType('testnet')),
+ closeMenu: () => this.setState({ isNetworkMenuOpen: false }),
+ action: () => props.dispatch(actions.setProviderType('testnet')),
icon: h('.menu-icon.morden-icon'),
}),
h(DropMenuItem, {
label: 'Localhost 8545',
- closeMenu:() => this.setState({ isNetworkMenuOpen: false }),
- action:() => props.dispatch(actions.setRpcTarget('http://localhost:8545')),
+ closeMenu: () => this.setState({ isNetworkMenuOpen: false }),
+ action: () => props.dispatch(actions.setRpcTarget('http://localhost:8545')),
icon: h('i.fa.fa-question-circle.fa-lg', { ariaHidden: true }),
}),
])
}
-App.prototype.renderDropdown = function() {
+App.prototype.renderDropdown = function () {
const props = this.props
return h(MenuDroppo, {
isOpen: props.menuOpen,
@@ -218,28 +210,28 @@ App.prototype.renderDropdown = function() {
h(DropMenuItem, {
label: 'Settings',
- closeMenu:() => this.props.dispatch(actions.closeMenu()),
- action:() => this.props.dispatch(actions.showConfigPage()),
+ closeMenu: () => this.props.dispatch(actions.closeMenu()),
+ action: () => this.props.dispatch(actions.showConfigPage()),
icon: h('i.fa.fa-gear.fa-lg', { ariaHidden: true }),
}),
h(DropMenuItem, {
label: 'Lock',
- closeMenu:() => this.props.dispatch(actions.closeMenu()),
- action:() => this.props.dispatch(actions.lockMetamask()),
+ closeMenu: () => this.props.dispatch(actions.closeMenu()),
+ action: () => this.props.dispatch(actions.lockMetamask()),
icon: h('i.fa.fa-lock.fa-lg', { ariaHidden: true }),
}),
h(DropMenuItem, {
label: 'Help',
- closeMenu:() => this.props.dispatch(actions.closeMenu()),
- action:() => this.props.dispatch(actions.showInfoPage()),
+ closeMenu: () => this.props.dispatch(actions.closeMenu()),
+ action: () => this.props.dispatch(actions.showInfoPage()),
icon: h('i.fa.fa-question.fa-lg', { ariaHidden: true }),
}),
])
}
-App.prototype.renderPrimary = function(){
+App.prototype.renderPrimary = function () {
var props = this.props
if (!props.isConfirmed) {
@@ -252,7 +244,6 @@ App.prototype.renderPrimary = function(){
// show initialize screen
if (!props.isInitialized) {
-
// show current view
switch (props.currentView.name) {
@@ -305,10 +296,10 @@ App.prototype.renderPrimary = function(){
default:
return h(AccountDetailScreen, {key: 'account-detail'})
- }
+ }
}
-App.prototype.toggleMetamaskActive = function(){
+App.prototype.toggleMetamaskActive = function () {
if (!this.props.isUnlocked) {
// currently inactive: redirect to password box
var passwordBox = document.querySelector('input[type=password]')
diff --git a/ui/app/components/account-export.js b/ui/app/components/account-export.js
index e31951a7d..f36b9faeb 100644
--- a/ui/app/components/account-export.js
+++ b/ui/app/components/account-export.js
@@ -6,14 +6,13 @@ const actions = require('../actions')
module.exports = ExportAccountView
-
inherits(ExportAccountView, Component)
-function ExportAccountView() {
+function ExportAccountView () {
Component.call(this)
}
-ExportAccountView.prototype.render = function() {
- console.log("EXPORT VIEW")
+ExportAccountView.prototype.render = function () {
+ console.log('EXPORT VIEW')
console.dir(this.props)
var state = this.props
var accountDetail = state.accountDetail
@@ -47,13 +46,13 @@ ExportAccountView.prototype.render = function() {
style: {
position: 'relative',
top: '1.5px',
- }
+ },
}),
h('button', {
onClick: () => this.onExportKeyPress({ key: 'Enter', preventDefault: () => {} }),
}, 'Submit'),
h('button', {
- onClick: () => this.props.dispatch(actions.backToAccountDetail(this.props.address))
+ onClick: () => this.props.dispatch(actions.backToAccountDetail(this.props.address)),
}, 'Cancel'),
])
@@ -72,18 +71,18 @@ ExportAccountView.prototype.render = function() {
webkitUserSelect: 'text',
width: '100%',
},
- onClick: function(event) {
+ onClick: function (event) {
copyToClipboard(accountDetail.privateKey)
- }
+ },
}, accountDetail.privateKey),
h('button', {
- onClick: () => this.props.dispatch(actions.backToAccountDetail(this.props.address))
+ onClick: () => this.props.dispatch(actions.backToAccountDetail(this.props.address)),
}, 'Done'),
])
}
}
-ExportAccountView.prototype.onExportKeyPress = function(event) {
+ExportAccountView.prototype.onExportKeyPress = function (event) {
if (event.key !== 'Enter') return
event.preventDefault()
@@ -96,6 +95,6 @@ ExportAccountView.prototype.onExportKeyPress = function(event) {
}
}
-ExportAccountView.prototype.exportAccount = function(address) {
+ExportAccountView.prototype.exportAccount = function (address) {
this.props.dispatch(actions.exportAccount(address))
}
diff --git a/ui/app/components/account-panel.js b/ui/app/components/account-panel.js
index 5583d06ae..112b897d5 100644
--- a/ui/app/components/account-panel.js
+++ b/ui/app/components/account-panel.js
@@ -1,30 +1,24 @@
const inherits = require('util').inherits
-const ethUtil = require('ethereumjs-util')
const Component = require('react').Component
const h = require('react-hyperscript')
const formatBalance = require('../util').formatBalance
-const Identicon = require('./identicon')
const addressSummary = require('../util').addressSummary
const Panel = require('./panel')
module.exports = AccountPanel
-
inherits(AccountPanel, Component)
-function AccountPanel() {
+function AccountPanel () {
Component.call(this)
}
-AccountPanel.prototype.render = function() {
+AccountPanel.prototype.render = function () {
var state = this.props
var identity = state.identity || {}
var account = state.account || {}
var isFauceting = state.isFauceting
- var identicon = new Identicon(identity.address, 46).toString()
- var identiconSrc = `data:image/png;base64,${identicon}`
-
var panelOpts = {
key: `accountPanel${identity.address}`,
onClick: (event) => {
@@ -40,21 +34,19 @@ AccountPanel.prototype.render = function() {
value: addressSummary(identity.address),
},
balanceOrFaucetingIndication(account, isFauceting),
- ]
+ ],
}
return h(Panel, panelOpts,
!state.onShowDetail ? null : h('.arrow-right.cursor-pointer', [
h('i.fa.fa-chevron-right.fa-lg'),
]))
-
}
-function balanceOrFaucetingIndication(account, isFauceting) {
-
+function balanceOrFaucetingIndication (account, isFauceting) {
// Temporarily deactivating isFauceting indication
// because it shows fauceting for empty restored accounts.
- if (/*isFauceting*/ false) {
+ if (/* isFauceting*/ false) {
return {
key: 'Account is auto-funding.',
value: 'Please wait.',
@@ -62,7 +54,7 @@ function balanceOrFaucetingIndication(account, isFauceting) {
} else {
return {
key: 'BALANCE',
- value: formatBalance(account.balance)
+ value: formatBalance(account.balance),
}
}
}
diff --git a/ui/app/components/drop-menu-item.js b/ui/app/components/drop-menu-item.js
index c8e61278c..d9fde72ac 100644
--- a/ui/app/components/drop-menu-item.js
+++ b/ui/app/components/drop-menu-item.js
@@ -4,16 +4,14 @@ const inherits = require('util').inherits
module.exports = DropMenuItem
-
inherits(DropMenuItem, Component)
-function DropMenuItem() {
+function DropMenuItem () {
Component.call(this)
}
-DropMenuItem.prototype.render = function() {
-
+DropMenuItem.prototype.render = function () {
return h('li.drop-menu-item', {
- onClick:() => {
+ onClick: () => {
this.props.closeMenu()
this.props.action()
},
diff --git a/ui/app/components/editable-label.js b/ui/app/components/editable-label.js
index 41c129d4e..3d7ca17d4 100644
--- a/ui/app/components/editable-label.js
+++ b/ui/app/components/editable-label.js
@@ -5,46 +5,43 @@ const findDOMNode = require('react-dom').findDOMNode
module.exports = EditableLabel
-
inherits(EditableLabel, Component)
-function EditableLabel() {
+function EditableLabel () {
Component.call(this)
}
-EditableLabel.prototype.render = function() {
+EditableLabel.prototype.render = function () {
const props = this.props
- let state = this.state
+ const state = this.state
if (state && state.isEditingLabel) {
-
return h('div.editable-label', [
h('input.sizing-input', {
defaultValue: props.textValue,
- onKeyPress:(event) => {
+ onKeyPress: (event) => {
this.saveIfEnter(event)
},
}),
h('button.editable-button', {
- onClick:() => this.saveText(),
- }, 'Save')
+ onClick: () => this.saveText(),
+ }, 'Save'),
])
-
} else {
return h('div.name-label', {
- onClick:(event) => {
+ onClick: (event) => {
this.setState({ isEditingLabel: true })
},
}, this.props.children)
}
}
-EditableLabel.prototype.saveIfEnter = function(event) {
+EditableLabel.prototype.saveIfEnter = function (event) {
if (event.key === 'Enter') {
this.saveText()
}
}
-EditableLabel.prototype.saveText = function() {
+EditableLabel.prototype.saveText = function () {
var container = findDOMNode(this)
var text = container.querySelector('.editable-label input').value
this.props.saveText(text)
diff --git a/ui/app/components/eth-balance.js b/ui/app/components/eth-balance.js
index 76b75d4c8..710d4fc8b 100644
--- a/ui/app/components/eth-balance.js
+++ b/ui/app/components/eth-balance.js
@@ -1,17 +1,16 @@
const Component = require('react').Component
const h = require('react-hyperscript')
const inherits = require('util').inherits
-const parseBalance = require('../util').parseBalance
const formatBalance = require('../util').formatBalance
module.exports = EthBalanceComponent
inherits(EthBalanceComponent, Component)
-function EthBalanceComponent() {
+function EthBalanceComponent () {
Component.call(this)
}
-EthBalanceComponent.prototype.render = function() {
+EthBalanceComponent.prototype.render = function () {
var state = this.props
var style = state.style
var value = formatBalance(state.value)
diff --git a/ui/app/components/identicon.js b/ui/app/components/identicon.js
index fd61b3125..5fe07ce7a 100644
--- a/ui/app/components/identicon.js
+++ b/ui/app/components/identicon.js
@@ -9,13 +9,13 @@ const iconFactory = iconFactoryGen(jazzicon)
module.exports = IdenticonComponent
inherits(IdenticonComponent, Component)
-function IdenticonComponent() {
+function IdenticonComponent () {
Component.call(this)
this.defaultDiameter = 46
}
-IdenticonComponent.prototype.render = function() {
+IdenticonComponent.prototype.render = function () {
var state = this.props
var diameter = state.diameter || this.defaultDiameter
return (
@@ -32,7 +32,7 @@ IdenticonComponent.prototype.render = function() {
)
}
-IdenticonComponent.prototype.componentDidMount = function(){
+IdenticonComponent.prototype.componentDidMount = function () {
var state = this.props
var address = state.address
diff --git a/ui/app/components/mascot.js b/ui/app/components/mascot.js
index e043caca1..ddd51f8ba 100644
--- a/ui/app/components/mascot.js
+++ b/ui/app/components/mascot.js
@@ -2,14 +2,12 @@ const inherits = require('util').inherits
const Component = require('react').Component
const h = require('react-hyperscript')
const metamaskLogo = require('metamask-logo')
-const getCaretCoordinates = require('textarea-caret')
const debounce = require('debounce')
module.exports = Mascot
-
inherits(Mascot, Component)
-function Mascot() {
+function Mascot () {
Component.call(this)
this.logo = metamaskLogo({
followMouse: true,
@@ -22,8 +20,7 @@ function Mascot() {
this.unfollowMouse = this.logo.setFollowMouse.bind(this.logo, false)
}
-
-Mascot.prototype.render = function() {
+Mascot.prototype.render = function () {
// this is a bit hacky
// the event emitter is on `this.props`
// and we dont get that until render
@@ -36,19 +33,19 @@ Mascot.prototype.render = function() {
)
}
-Mascot.prototype.componentDidMount = function() {
+Mascot.prototype.componentDidMount = function () {
if (!this.logo) return
var targetDivId = 'metamask-mascot-container'
var container = document.getElementById(targetDivId)
container.appendChild(this.logo.canvas)
}
-Mascot.prototype.componentWillUnmount = function() {
+Mascot.prototype.componentWillUnmount = function () {
if (!this.logo) return
this.logo.canvas.remove()
}
-Mascot.prototype.handleAnimationEvents = function(){
+Mascot.prototype.handleAnimationEvents = function () {
if (!this.logo) return
// only setup listeners once
if (this.animations) return
@@ -57,7 +54,7 @@ Mascot.prototype.handleAnimationEvents = function(){
this.animations.on('setFollowMouse', this.logo.setFollowMouse.bind(this.logo))
}
-Mascot.prototype.lookAt = function(target){
+Mascot.prototype.lookAt = function (target) {
if (!this.logo) return
this.unfollowMouse()
this.logo.lookAt(target)
diff --git a/ui/app/components/network.js b/ui/app/components/network.js
index b226a6db6..771be5f32 100644
--- a/ui/app/components/network.js
+++ b/ui/app/components/network.js
@@ -6,34 +6,33 @@ module.exports = Network
inherits(Network, Component)
-function Network() {
+function Network () {
Component.call(this)
}
-Network.prototype.render = function() {
+Network.prototype.render = function () {
const state = this.props
const networkNumber = state.network
let iconName, hoverText
- const imagePath = "/images/"
- if (networkNumber == 'loading') {
+ if (networkNumber === 'loading') {
return h('img', {
title: 'Attempting to connect to blockchain.',
- onClick:(event) => this.props.onClick(event),
+ onClick: (event) => this.props.onClick(event),
style: {
width: '27px',
- marginRight: '-27px'
+ marginRight: '-27px',
},
src: 'images/loading.svg',
})
- } else if (parseInt(networkNumber) == 1) {
+ } else if (parseInt(networkNumber) === 1) {
hoverText = 'Main Ethereum Network'
iconName = 'ethereum-network'
- }else if (parseInt(networkNumber) == 2) {
- hoverText = "Morden Test Network"
+ } else if (parseInt(networkNumber) === 2) {
+ hoverText = 'Morden Test Network'
iconName = 'morden-test-network'
- }else {
- hoverText = "Unknown Private Network"
+ } else {
+ hoverText = 'Unknown Private Network'
iconName = 'unknown-private-network'
}
return (
@@ -43,24 +42,24 @@ Network.prototype.render = function() {
marginLeft: '-3px',
},
title: hoverText,
- onClick:(event) => this.props.onClick(event),
- },[
- function() {
- switch (iconName) {
- case 'ethereum-network':
- return h('.menu-icon.ether-icon')
- case 'morden-test-network':
- return h('.menu-icon.morden-icon')
- default:
- return h('i.fa.fa-question-circle.fa-lg', {
- ariaHidden: true,
- style: {
- margin: '10px',
- color: 'rgb(125, 128, 130)',
- },
- })
- }
- }()
+ onClick: (event) => this.props.onClick(event),
+ }, [
+ (function () {
+ switch (iconName) {
+ case 'ethereum-network':
+ return h('.menu-icon.ether-icon')
+ case 'morden-test-network':
+ return h('.menu-icon.morden-icon')
+ default:
+ return h('i.fa.fa-question-circle.fa-lg', {
+ ariaHidden: true,
+ style: {
+ margin: '10px',
+ color: 'rgb(125, 128, 130)',
+ },
+ })
+ }
+ })(),
])
)
}
diff --git a/ui/app/components/panel.js b/ui/app/components/panel.js
index 5d72d6068..cbdc82982 100644
--- a/ui/app/components/panel.js
+++ b/ui/app/components/panel.js
@@ -1,23 +1,18 @@
const inherits = require('util').inherits
-const ethUtil = require('ethereumjs-util')
const Component = require('react').Component
const h = require('react-hyperscript')
const Identicon = require('./identicon')
module.exports = Panel
-
inherits(Panel, Component)
-function Panel() {
+function Panel () {
Component.call(this)
}
-Panel.prototype.render = function() {
+Panel.prototype.render = function () {
var state = this.props
- var identity = state.identity || {}
- var account = state.account || {}
- var isFauceting = state.isFauceting
var style = {
flex: '1 0 auto',
}
diff --git a/ui/app/components/pending-msg.js b/ui/app/components/pending-msg.js
index b0a6bb87d..7f3914d56 100644
--- a/ui/app/components/pending-msg.js
+++ b/ui/app/components/pending-msg.js
@@ -3,25 +3,21 @@ const h = require('react-hyperscript')
const inherits = require('util').inherits
const AccountPanel = require('./account-panel')
-const addressSummary = require('../util').addressSummary
const readableDate = require('../util').readableDate
-const formatBalance = require('../util').formatBalance
-const dataSize = require('../util').dataSize
module.exports = PendingMsg
-
inherits(PendingMsg, Component)
-function PendingMsg() {
+function PendingMsg () {
Component.call(this)
}
-PendingMsg.prototype.render = function() {
+PendingMsg.prototype.render = function () {
var state = this.props
var msgData = state.txData
var msgParams = msgData.msgParams || {}
- var address = msgParams.from || state.selectedAddress
+ var address = msgParams.from || state.selectedAddress
var identity = state.identities[address] || { address: address }
var account = state.accounts[address] || { address: address }
@@ -34,7 +30,7 @@ PendingMsg.prototype.render = function() {
style: {
fontWeight: 'bold',
textAlign: 'center',
- }
+ },
}, 'Sign Message'),
// account that will sign
diff --git a/ui/app/components/pending-tx.js b/ui/app/components/pending-tx.js
index 2bfb89705..1835239e5 100644
--- a/ui/app/components/pending-tx.js
+++ b/ui/app/components/pending-tx.js
@@ -6,22 +6,20 @@ const AccountPanel = require('./account-panel')
const addressSummary = require('../util').addressSummary
const readableDate = require('../util').readableDate
const formatBalance = require('../util').formatBalance
-const dataSize = require('../util').dataSize
module.exports = PendingTx
-
inherits(PendingTx, Component)
-function PendingTx() {
+function PendingTx () {
Component.call(this)
}
-PendingTx.prototype.render = function() {
+PendingTx.prototype.render = function () {
var state = this.props
var txData = state.txData
var txParams = txData.txParams || {}
- var address = txParams.from || state.selectedAddress
+ var address = txParams.from || state.selectedAddress
var identity = state.identities[address] || { address: address }
var account = state.accounts[address] || { address: address }
@@ -34,7 +32,7 @@ PendingTx.prototype.render = function() {
style: {
fontWeight: 'bold',
textAlign: 'center',
- }
+ },
}, 'Submit Transaction'),
// account that will sign
diff --git a/ui/app/components/template.js b/ui/app/components/template.js
index 9e4eca20f..b6ed8eaa0 100644
--- a/ui/app/components/template.js
+++ b/ui/app/components/template.js
@@ -4,16 +4,15 @@ const inherits = require('util').inherits
module.exports = NewComponent
-
inherits(NewComponent, Component)
-function NewComponent() {
+function NewComponent () {
Component.call(this)
}
-NewComponent.prototype.render = function() {
- var state = this.props
+NewComponent.prototype.render = function () {
+ const props = this.props
return (
- h('span', 'Placeholder component')
+ h('span', props.message)
)
}
diff --git a/ui/app/components/transaction-list-item-icon.js b/ui/app/components/transaction-list-item-icon.js
index fbee4b218..c640de551 100644
--- a/ui/app/components/transaction-list-item-icon.js
+++ b/ui/app/components/transaction-list-item-icon.js
@@ -6,20 +6,19 @@ const Identicon = require('./identicon')
module.exports = TransactionIcon
-
inherits(TransactionIcon, Component)
-function TransactionIcon() {
+function TransactionIcon () {
Component.call(this)
}
-TransactionIcon.prototype.render = function() {
- const { transaction, txParams, isTx, isMsg } = this.props
+TransactionIcon.prototype.render = function () {
+ const { transaction, txParams, isMsg } = this.props
if (transaction.status === 'rejected') {
return h('i.fa.fa-exclamation-triangle.fa-lg.error', {
style: {
width: '24px',
- }
+ },
})
}
@@ -27,7 +26,7 @@ TransactionIcon.prototype.render = function() {
return h('i.fa.fa-certificate.fa-lg', {
style: {
width: '24px',
- }
+ },
})
}
@@ -40,7 +39,7 @@ TransactionIcon.prototype.render = function() {
return h('i.fa.fa-file-text-o.fa-lg', {
style: {
width: '24px',
- }
+ },
})
}
}
diff --git a/ui/app/components/transaction-list-item.js b/ui/app/components/transaction-list-item.js
index fc1c3c630..56f2103f3 100644
--- a/ui/app/components/transaction-list-item.js
+++ b/ui/app/components/transaction-list-item.js
@@ -5,20 +5,18 @@ const inherits = require('util').inherits
const EtherBalance = require('./eth-balance')
const addressSummary = require('../util').addressSummary
const explorerLink = require('../../lib/explorer-link')
-const formatBalance = require('../util').formatBalance
const vreme = new (require('vreme'))
const TransactionIcon = require('./transaction-list-item-icon')
module.exports = TransactionListItem
-
inherits(TransactionListItem, Component)
-function TransactionListItem() {
+function TransactionListItem () {
Component.call(this)
}
-TransactionListItem.prototype.render = function() {
+TransactionListItem.prototype.render = function () {
const { transaction, i, network } = this.props
var date = formatDate(transaction.time)
@@ -59,8 +57,8 @@ TransactionListItem.prototype.render = function() {
// large identicon
h('.identicon-wrapper.flex-column.flex-center.select-none', [
- transaction.status === 'unconfirmed' ? h('.red-dot', ' ') :
- h(TransactionIcon, { txParams, transaction, isTx, isMsg }),
+ transaction.status === 'unconfirmed' ? h('.red-dot', ' ')
+ : h(TransactionIcon, { txParams, transaction, isTx, isMsg }),
]),
h('.flex-column', [
@@ -76,24 +74,24 @@ TransactionListItem.prototype.render = function() {
)
}
-function domainField(txParams) {
+function domainField (txParams) {
return h('div', {
style: {
fontSize: 'small',
color: '#ABA9AA',
},
- },[
+ }, [
txParams.origin,
])
}
-function recipientField(txParams, transaction, isTx, isMsg) {
+function recipientField (txParams, transaction, isTx, isMsg) {
let message
if (isMsg) {
message = 'Signature Requested'
} else if (txParams.to) {
- message = addressSummary(txParams.to)
+ message = addressSummary(txParams.to)
} else {
message = 'Contract Published'
}
@@ -103,23 +101,17 @@ function recipientField(txParams, transaction, isTx, isMsg) {
fontSize: 'small',
color: '#ABA9AA',
},
- },[
+ }, [
message,
failIfFailed(transaction),
])
-
-}
-
-TransactionListItem.prototype.renderMessage = function() {
- const { transaction, i, network } = this.props
- return h('div', 'wowie, thats a message')
}
-function formatDate(date){
+function formatDate (date) {
return vreme.format(new Date(date), 'March 16 2014 14:30')
}
-function failIfFailed(transaction) {
+function failIfFailed (transaction) {
if (transaction.status === 'rejected') {
return h('span.error', ' (Rejected)')
}
diff --git a/ui/app/components/transaction-list.js b/ui/app/components/transaction-list.js
index ed2e1ee0a..a1a5db475 100644
--- a/ui/app/components/transaction-list.js
+++ b/ui/app/components/transaction-list.js
@@ -8,12 +8,12 @@ module.exports = TransactionList
inherits(TransactionList, Component)
-function TransactionList() {
+function TransactionList () {
Component.call(this)
}
-TransactionList.prototype.render = function() {
- const { txsToRender, network, unconfTxs, unconfMsgs } = this.props
+TransactionList.prototype.render = function () {
+ const { txsToRender, network, unconfMsgs } = this.props
const transactions = txsToRender.concat(unconfMsgs)
.sort((a, b) => b.time - a.time)
@@ -49,22 +49,21 @@ TransactionList.prototype.render = function() {
},
}, (
- transactions.length ?
- transactions.map((transaction, i) => {
+ transactions.length
+ ? transactions.map((transaction, i) => {
return h(TransactionListItem, {
transaction, i, network,
- showTx:(txId) => {
+ showTx: (txId) => {
this.props.viewPendingTx(txId)
},
})
})
- :
- [h('.flex-center', {
- style: {
- height: '100%',
- },
- }, 'No transaction history...')]
- ))
+ : [h('.flex-center', {
+ style: {
+ height: '100%',
+ },
+ }, 'No transaction history...')]
+ )),
])
)
}
diff --git a/ui/app/conf-tx.js b/ui/app/conf-tx.js
index 9092c85c9..5c80939b9 100644
--- a/ui/app/conf-tx.js
+++ b/ui/app/conf-tx.js
@@ -3,10 +3,7 @@ const Component = require('react').Component
const ReactCSSTransitionGroup = require('react-addons-css-transition-group')
const h = require('react-hyperscript')
const connect = require('react-redux').connect
-const copyToClipboard = require('copy-to-clipboard')
const actions = require('./actions')
-const AccountPanel = require('./components/account-panel')
-const valuesFor = require('./util').valuesFor
const txHelper = require('../lib/tx-helper')
const ConfirmTx = require('./components/pending-tx')
@@ -14,7 +11,7 @@ const PendingMsg = require('./components/pending-msg')
module.exports = connect(mapStateToProps)(ConfirmTxScreen)
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {
identities: state.metamask.identities,
accounts: state.metamask.accounts,
@@ -27,12 +24,11 @@ function mapStateToProps(state) {
}
inherits(ConfirmTxScreen, Component)
-function ConfirmTxScreen() {
+function ConfirmTxScreen () {
Component.call(this)
}
-
-ConfirmTxScreen.prototype.render = function() {
+ConfirmTxScreen.prototype.render = function () {
var state = this.props
var unconfTxs = state.unconfTxs
@@ -103,7 +99,6 @@ ConfirmTxScreen.prototype.render = function() {
}
function currentTxView (opts) {
-
if ('txParams' in opts.txData) {
// This is a pending transaction
return h(ConfirmTx, opts)
@@ -113,34 +108,34 @@ function currentTxView (opts) {
}
}
-ConfirmTxScreen.prototype.sendTransaction = function(txData, event){
+ConfirmTxScreen.prototype.sendTransaction = function (txData, event) {
event.stopPropagation()
this.props.dispatch(actions.sendTx(txData))
}
-ConfirmTxScreen.prototype.cancelTransaction = function(txData, event){
+ConfirmTxScreen.prototype.cancelTransaction = function (txData, event) {
event.stopPropagation()
this.props.dispatch(actions.cancelTx(txData))
}
-ConfirmTxScreen.prototype.signMessage = function(msgData, event){
+ConfirmTxScreen.prototype.signMessage = function (msgData, event) {
var params = msgData.msgParams
params.metamaskId = msgData.id
event.stopPropagation()
this.props.dispatch(actions.signMsg(params))
}
-ConfirmTxScreen.prototype.cancelMessage = function(msgData, event){
+ConfirmTxScreen.prototype.cancelMessage = function (msgData, event) {
event.stopPropagation()
this.props.dispatch(actions.cancelMsg(msgData))
}
-ConfirmTxScreen.prototype.goHome = function(event){
+ConfirmTxScreen.prototype.goHome = function (event) {
event.stopPropagation()
this.props.dispatch(actions.goHome())
}
-function warningIfExists(warning) {
+function warningIfExists (warning) {
if (warning) {
return h('span.error', { style: { margin: 'auto' } }, warning)
}
diff --git a/ui/app/config.js b/ui/app/config.js
index c4d473b10..4094180dd 100644
--- a/ui/app/config.js
+++ b/ui/app/config.js
@@ -6,22 +6,19 @@ const actions = require('./actions')
module.exports = connect(mapStateToProps)(ConfigScreen)
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {
- rpc: state.metamask.rpcTarget,
metamask: state.metamask,
}
}
inherits(ConfigScreen, Component)
-function ConfigScreen() {
+function ConfigScreen () {
Component.call(this)
}
-
-ConfigScreen.prototype.render = function() {
+ConfigScreen.prototype.render = function () {
var state = this.props
- var rpc = state.rpc
var metamaskState = state.metamask
return (
@@ -32,7 +29,7 @@ ConfigScreen.prototype.render = function() {
h('i.fa.fa-arrow-left.fa-lg.cursor-pointer', {
onClick: (event) => {
state.dispatch(actions.goHome())
- }
+ },
}),
h('h2.page-subtitle', 'Configuration'),
]),
@@ -42,7 +39,7 @@ ConfigScreen.prototype.render = function() {
h('.flex-space-around', {
style: {
padding: '20px',
- }
+ },
}, [
currentProviderDisplay(metamaskState),
@@ -56,25 +53,25 @@ ConfigScreen.prototype.render = function() {
height: '30px',
margin: '8px',
},
- onKeyPress(event) {
+ onKeyPress (event) {
if (event.key === 'Enter') {
var element = event.target
var newRpc = element.value
state.dispatch(actions.setRpcTarget(newRpc))
}
- }
+ },
}),
h('button', {
style: {
alignSelf: 'center',
},
- onClick(event) {
+ onClick (event) {
event.preventDefault()
var element = document.querySelector('input#new_rpc')
var newRpc = element.value
state.dispatch(actions.setRpcTarget(newRpc))
- }
- }, 'Save')
+ },
+ }, 'Save'),
]),
h('div', [
@@ -82,10 +79,10 @@ ConfigScreen.prototype.render = function() {
style: {
alignSelf: 'center',
},
- onClick(event) {
+ onClick (event) {
event.preventDefault()
state.dispatch(actions.setProviderType('mainnet'))
- }
+ },
}, 'Use Main Network'),
]),
@@ -94,10 +91,10 @@ ConfigScreen.prototype.render = function() {
style: {
alignSelf: 'center',
},
- onClick(event) {
+ onClick (event) {
event.preventDefault()
state.dispatch(actions.setProviderType('testnet'))
- }
+ },
}, 'Use Morden Test Network'),
]),
@@ -106,10 +103,10 @@ ConfigScreen.prototype.render = function() {
style: {
alignSelf: 'center',
},
- onClick(event) {
+ onClick (event) {
event.preventDefault()
state.dispatch(actions.setRpcTarget('http://localhost:8545/'))
- }
+ },
}, 'Use http://localhost:8545'),
]),
@@ -118,17 +115,17 @@ ConfigScreen.prototype.render = function() {
h('div', {
style: {
marginTop: '20px',
- }
+ },
}, [
h('button', {
style: {
alignSelf: 'center',
},
- onClick(event) {
+ onClick (event) {
event.preventDefault()
state.dispatch(actions.revealSeedConfirmation())
- }
- }, 'Reveal Seed Words')
+ },
+ }, 'Reveal Seed Words'),
]),
]),
@@ -137,7 +134,7 @@ ConfigScreen.prototype.render = function() {
)
}
-function currentProviderDisplay(metamaskState) {
+function currentProviderDisplay (metamaskState) {
var provider = metamaskState.provider
var title, value
@@ -156,10 +153,10 @@ function currentProviderDisplay(metamaskState) {
default:
title = 'Current RPC'
value = metamaskState.provider.rpcTarget
- }
+ }
return h('div', [
h('span', {style: { fontWeight: 'bold', paddingRight: '10px'}}, title),
- h('span', value)
+ h('span', value),
])
}
diff --git a/ui/app/first-time/create-vault-complete.js b/ui/app/first-time/create-vault-complete.js
index 9eceb4421..0ca0a1b22 100644
--- a/ui/app/first-time/create-vault-complete.js
+++ b/ui/app/first-time/create-vault-complete.js
@@ -6,20 +6,19 @@ const actions = require('../actions')
module.exports = connect(mapStateToProps)(CreateVaultCompleteScreen)
-
inherits(CreateVaultCompleteScreen, Component)
-function CreateVaultCompleteScreen() {
+function CreateVaultCompleteScreen () {
Component.call(this)
}
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {
seed: state.appState.currentView.seedWords,
cachedSeed: state.metamask.seedWords,
}
}
-CreateVaultCompleteScreen.prototype.render = function() {
+CreateVaultCompleteScreen.prototype.render = function () {
var state = this.props
var seed = state.seed || state.cachedSeed
@@ -50,7 +49,7 @@ CreateVaultCompleteScreen.prototype.render = function() {
style: {
padding: '12px 20px 0px 20px',
textAlign: 'center',
- }
+ },
}, 'These 12 words can restore all of your MetaMask accounts for this vault.\nSave them somewhere safe and secret.'),
h('textarea.twelve-word-phrase', {
@@ -68,7 +67,7 @@ CreateVaultCompleteScreen.prototype.render = function() {
)
}
-CreateVaultCompleteScreen.prototype.confirmSeedWords = function() {
+CreateVaultCompleteScreen.prototype.confirmSeedWords = function () {
this.props.dispatch(actions.confirmSeedWords())
}
diff --git a/ui/app/first-time/create-vault.js b/ui/app/first-time/create-vault.js
index 1e963aa5a..3dfbf0dbd 100644
--- a/ui/app/first-time/create-vault.js
+++ b/ui/app/first-time/create-vault.js
@@ -7,19 +7,18 @@ const actions = require('../actions')
module.exports = connect(mapStateToProps)(CreateVaultScreen)
-
inherits(CreateVaultScreen, Component)
-function CreateVaultScreen() {
+function CreateVaultScreen () {
Component.call(this)
}
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {
warning: state.appState.warning,
}
}
-CreateVaultScreen.prototype.render = function() {
+CreateVaultScreen.prototype.render = function () {
var state = this.props
return (
@@ -91,24 +90,24 @@ CreateVaultScreen.prototype.render = function() {
)
}
-CreateVaultScreen.prototype.componentDidMount = function(){
+CreateVaultScreen.prototype.componentDidMount = function () {
document.getElementById('password-box').focus()
}
-CreateVaultScreen.prototype.showInitializeMenu = function() {
+CreateVaultScreen.prototype.showInitializeMenu = function () {
this.props.dispatch(actions.showInitializeMenu())
}
// create vault
-CreateVaultScreen.prototype.createVaultOnEnter = function(event) {
+CreateVaultScreen.prototype.createVaultOnEnter = function (event) {
if (event.key === 'Enter') {
event.preventDefault()
this.createNewVault()
}
}
-CreateVaultScreen.prototype.createNewVault = function(){
+CreateVaultScreen.prototype.createNewVault = function () {
var passwordBox = document.getElementById('password-box')
var password = passwordBox.value
var passwordConfirmBox = document.getElementById('password-box-confirm')
@@ -126,5 +125,5 @@ CreateVaultScreen.prototype.createNewVault = function(){
return
}
- this.props.dispatch(actions.createNewVault(password, ''/*entropy*/))
+ this.props.dispatch(actions.createNewVault(password, ''/* entropy*/))
}
diff --git a/ui/app/first-time/disclaimer.js b/ui/app/first-time/disclaimer.js
index fe138c93b..bfd6c490d 100644
--- a/ui/app/first-time/disclaimer.js
+++ b/ui/app/first-time/disclaimer.js
@@ -8,17 +8,16 @@ const path = require('path')
const disclaimer = fs.readFileSync(path.join(__dirname, 'disclaimer.txt')).toString()
module.exports = connect(mapStateToProps)(DisclaimerScreen)
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {}
}
inherits(DisclaimerScreen, Component)
-function DisclaimerScreen() {
+function DisclaimerScreen () {
Component.call(this)
}
-DisclaimerScreen.prototype.render = function() {
-
+DisclaimerScreen.prototype.render = function () {
return (
h('.flex-column.flex-center.flex-grow', [
@@ -43,13 +42,13 @@ DisclaimerScreen.prototype.render = function() {
padding: '6px',
width: '80%',
overflowY: 'scroll',
- }
+ },
}, disclaimer),
h('button', {
style: { marginTop: '18px' },
- onClick: () => this.props.dispatch(actions.agreeToDisclaimer())
- }, 'I Agree')
+ onClick: () => this.props.dispatch(actions.agreeToDisclaimer()),
+ }, 'I Agree'),
])
)
}
diff --git a/ui/app/first-time/init-menu.js b/ui/app/first-time/init-menu.js
index 197193063..e63c30fc5 100644
--- a/ui/app/first-time/init-menu.js
+++ b/ui/app/first-time/init-menu.js
@@ -3,28 +3,25 @@ const EventEmitter = require('events').EventEmitter
const Component = require('react').Component
const connect = require('react-redux').connect
const h = require('react-hyperscript')
-const getCaretCoordinates = require('textarea-caret')
const Mascot = require('../components/mascot')
const actions = require('../actions')
-const CreateVaultScreen = require('./create-vault')
-const CreateVaultCompleteScreen = require('./create-vault-complete')
module.exports = connect(mapStateToProps)(InitializeMenuScreen)
inherits(InitializeMenuScreen, Component)
-function InitializeMenuScreen() {
+function InitializeMenuScreen () {
Component.call(this)
this.animationEventEmitter = new EventEmitter()
}
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {
// state from plugin
currentView: state.appState.currentView,
}
}
-InitializeMenuScreen.prototype.render = function() {
+InitializeMenuScreen.prototype.render = function () {
var state = this.props
switch (state.currentView.name) {
@@ -33,15 +30,13 @@ InitializeMenuScreen.prototype.render = function() {
return this.renderMenu()
}
-
}
// InitializeMenuScreen.prototype.componentDidMount = function(){
// document.getElementById('password-box').focus()
// }
-InitializeMenuScreen.prototype.renderMenu = function() {
- var state = this.props
+InitializeMenuScreen.prototype.renderMenu = function () {
return (
h('.initialize-screen.flex-column.flex-center.flex-grow', [
@@ -88,15 +83,15 @@ InitializeMenuScreen.prototype.renderMenu = function() {
// this.props.dispatch(actions.showInitializeMenu())
// }
-InitializeMenuScreen.prototype.showInitializeMenu = function() {
+InitializeMenuScreen.prototype.showInitializeMenu = function () {
this.props.dispatch(actions.showInitializeMenu())
}
-InitializeMenuScreen.prototype.showCreateVault = function() {
+InitializeMenuScreen.prototype.showCreateVault = function () {
this.props.dispatch(actions.showCreateVault())
}
-InitializeMenuScreen.prototype.showRestoreVault = function() {
+InitializeMenuScreen.prototype.showRestoreVault = function () {
this.props.dispatch(actions.showRestoreVault())
}
diff --git a/ui/app/first-time/restore-vault.js b/ui/app/first-time/restore-vault.js
index ff3b308c4..684781e50 100644
--- a/ui/app/first-time/restore-vault.js
+++ b/ui/app/first-time/restore-vault.js
@@ -6,20 +6,18 @@ const actions = require('../actions')
module.exports = connect(mapStateToProps)(RestoreVaultScreen)
-
inherits(RestoreVaultScreen, Component)
-function RestoreVaultScreen() {
+function RestoreVaultScreen () {
Component.call(this)
}
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {
warning: state.appState.warning,
}
}
-
-RestoreVaultScreen.prototype.render = function() {
+RestoreVaultScreen.prototype.render = function () {
var state = this.props
return (
@@ -41,7 +39,7 @@ RestoreVaultScreen.prototype.render = function() {
// wallet seed entry
h('h3', 'Wallet Seed'),
h('textarea.twelve-word-phrase.letter-spacey', {
- placeholder: 'Enter your secret twelve word phrase here to restore your vault.'
+ placeholder: 'Enter your secret twelve word phrase here to restore your vault.',
}),
// password
@@ -97,17 +95,17 @@ RestoreVaultScreen.prototype.render = function() {
)
}
-RestoreVaultScreen.prototype.showInitializeMenu = function() {
+RestoreVaultScreen.prototype.showInitializeMenu = function () {
this.props.dispatch(actions.showInitializeMenu())
}
-RestoreVaultScreen.prototype.onMaybeCreate = function(event) {
+RestoreVaultScreen.prototype.onMaybeCreate = function (event) {
if (event.key === 'Enter') {
this.restoreVault()
}
}
-RestoreVaultScreen.prototype.restoreVault = function(){
+RestoreVaultScreen.prototype.restoreVault = function () {
// check password
var passwordBox = document.getElementById('password-box')
var password = passwordBox.value
diff --git a/ui/app/info.js b/ui/app/info.js
index b69e006d5..e3b68fed5 100644
--- a/ui/app/info.js
+++ b/ui/app/info.js
@@ -6,19 +6,18 @@ const actions = require('./actions')
module.exports = connect(mapStateToProps)(InfoScreen)
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {}
}
inherits(InfoScreen, Component)
-function InfoScreen() {
+function InfoScreen () {
Component.call(this)
}
-InfoScreen.prototype.render = function() {
+InfoScreen.prototype.render = function () {
var state = this.props
- var rpc = state.rpc
- var manifest = chrome.runtime.getManifest();
+ var manifest = chrome.runtime.getManifest()
return (
h('.flex-column.flex-grow', [
@@ -27,7 +26,7 @@ InfoScreen.prototype.render = function() {
h('i.fa.fa-arrow-left.fa-lg.cursor-pointer', {
onClick: (event) => {
state.dispatch(actions.goHome())
- }
+ },
}),
h('h2.page-subtitle', 'Info'),
]),
@@ -37,96 +36,93 @@ InfoScreen.prototype.render = function() {
h('.flex-space-around', {
style: {
padding: '20px',
- }
+ },
}, [
- //current version number
+ // current version number
- h('.info.info-gray',[
- h('div','Metamask'),
+ h('.info.info-gray', [
+ h('div', 'Metamask'),
h('div', {
style: {
- marginBottom: '10px',
- }
- },`Version: ${manifest.version}`),
+ marginBottom: '10px',
+ },
+ }, `Version: ${manifest.version}`),
]),
- h('hr',{
+ h('hr', {
style: {
- margin:'20px 0 ',
+ margin: '20px 0 ',
width: '7em',
- }
+ },
}),
-
- h('.info',{
- style: {
- marginBottom: '20px',
- }},
+ h('.info', {
+ style: {
+ marginBottom: '20px',
+ }},
`For more information on MetaMask
you can visit our web site. If you want to
contact us with questions or just
say 'Hi', you can find us on theise platforms:`),
- h('div',{
+ h('div', {
style: {
paddingLeft: '30px',
}},
- [
- h('div', [
- h('a', {
- href: 'https://metamask.io/',
- target: '_blank',
- onClick(event) { this.navigateTo(event.target.href) },
- },[
- h('img.icon-size', {
- src: manifest.icons[128]
- }),
- h('div.info',{
- style: {
- fontWeight: 800,
- }
- },'Visit our web site')
- ])
- ]),
- h('div.fa.fa-slack', [
- h('a.info', {
- href: 'http://slack.metamask.io',
- target: '_blank',
- onClick(event) { this.navigateTo(event.target.href) },
- }, 'Join the conversation on Slack'),
- ]),
-
-
- h('div.fa.fa-twitter', [
- h('a.info', {
- href: 'https://twitter.com/metamask_io',
- target: '_blank',
- onClick(event) { this.navigateTo(event.target.href) },
- }, 'Follow us on Twitter'),
- ]),
-
- h('div.fa.fa-envelope', [
- h('a.info', {
- href: 'mailto:hello@metamask.io?subject=Feedback',
- target: '_blank',
- }, 'Email us any questions or comments!'),
+ [
+ h('div', [
+ h('a', {
+ href: 'https://metamask.io/',
+ target: '_blank',
+ onClick (event) { this.navigateTo(event.target.href) },
+ }, [
+ h('img.icon-size', {
+ src: manifest.icons[128],
+ }),
+ h('div.info', {
+ style: {
+ fontWeight: 800,
+ },
+ }, 'Visit our web site'),
+ ]),
+ ]),
+ h('div.fa.fa-slack', [
+ h('a.info', {
+ href: 'http://slack.metamask.io',
+ target: '_blank',
+ onClick (event) { this.navigateTo(event.target.href) },
+ }, 'Join the conversation on Slack'),
+ ]),
+
+ h('div.fa.fa-twitter', [
+ h('a.info', {
+ href: 'https://twitter.com/metamask_io',
+ target: '_blank',
+ onClick (event) { this.navigateTo(event.target.href) },
+ }, 'Follow us on Twitter'),
+ ]),
+
+ h('div.fa.fa-envelope', [
+ h('a.info', {
+ href: 'mailto:hello@metamask.io?subject=Feedback',
+ target: '_blank',
+ }, 'Email us any questions or comments!'),
+ ]),
+
+ h('div.fa.fa-github', [
+ h('a.info', {
+ href: 'https://github.com/metamask/talk/issues',
+ target: '_blank',
+ onClick (event) { this.navigateTo(event.target.href) },
+ }, 'Start a thread on Github'),
+ ]),
]),
-
- h('div.fa.fa-github', [
- h('a.info', {
- href: 'https://github.com/metamask/talk/issues',
- target: '_blank',
- onClick(event) { this.navigateTo(event.target.href) },
- }, 'Start a thread on Github'),
- ]),
- ]),
]),
]),
])
)
-
}
-InfoScreen.prototype.navigateTo = function(url) {
- chrome.tabs.create({ url });
+InfoScreen.prototype.navigateTo = function (url) {
+ chrome.tabs.create({ url })
}
diff --git a/ui/app/loading.js b/ui/app/loading.js
index f6279d5cf..606b53dde 100644
--- a/ui/app/loading.js
+++ b/ui/app/loading.js
@@ -2,23 +2,22 @@ const inherits = require('util').inherits
const Component = require('react').Component
const h = require('react-hyperscript')
const connect = require('react-redux').connect
-const actions = require('./actions')
const ReactCSSTransitionGroup = require('react-addons-css-transition-group')
module.exports = connect(mapStateToProps)(LoadingIndicator)
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {
isLoading: state.appState.isLoading,
}
}
inherits(LoadingIndicator, Component)
-function LoadingIndicator() {
+function LoadingIndicator () {
Component.call(this)
}
-LoadingIndicator.prototype.render = function() {
+LoadingIndicator.prototype.render = function () {
var isLoading = this.props.isLoading
return (
@@ -38,7 +37,7 @@ LoadingIndicator.prototype.render = function() {
height: '100%',
width: '100%',
background: 'rgba(255, 255, 255, 0.5)',
- }
+ },
}, [
h('img', {
src: 'images/loading.svg',
diff --git a/ui/app/recover-seed/confirmation.js b/ui/app/recover-seed/confirmation.js
index 0276d547d..55b18025f 100644
--- a/ui/app/recover-seed/confirmation.js
+++ b/ui/app/recover-seed/confirmation.js
@@ -7,13 +7,12 @@ const actions = require('../actions')
module.exports = connect(mapStateToProps)(RevealSeedConfirmatoin)
-
inherits(RevealSeedConfirmatoin, Component)
-function RevealSeedConfirmatoin() {
+function RevealSeedConfirmatoin () {
Component.call(this)
}
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {
warning: state.appState.warning,
}
@@ -21,7 +20,7 @@ function mapStateToProps(state) {
RevealSeedConfirmatoin.prototype.confirmationPhrase = 'I understand'
-RevealSeedConfirmatoin.prototype.render = function() {
+RevealSeedConfirmatoin.prototype.render = function () {
const props = this.props
const state = this.state
@@ -48,7 +47,7 @@ RevealSeedConfirmatoin.prototype.render = function() {
flexDirection: 'column',
padding: '20px',
justifyContent: 'center',
- }
+ },
}, [
h('h4', 'Do not recover your seed words in a public place! These words can be used to steal all your accounts.'),
@@ -68,8 +67,8 @@ RevealSeedConfirmatoin.prototype.render = function() {
h(`h4${state && state.confirmationWrong ? '.error' : ''}`, {
style: {
marginTop: '12px',
- }
- }, `Enter the phrase "I understand" to proceed.`),
+ },
+ }, 'Enter the phrase "I understand" to proceed.'),
// confirm confirmation
h('input.large-input.letter-spacey', {
@@ -105,7 +104,7 @@ RevealSeedConfirmatoin.prototype.render = function() {
h('span.error', {
style: {
margin: '20px',
- }
+ },
}, props.warning.split('-'))
),
@@ -117,24 +116,24 @@ RevealSeedConfirmatoin.prototype.render = function() {
)
}
-RevealSeedConfirmatoin.prototype.componentDidMount = function(){
+RevealSeedConfirmatoin.prototype.componentDidMount = function () {
document.getElementById('password-box').focus()
}
-RevealSeedConfirmatoin.prototype.goHome = function() {
+RevealSeedConfirmatoin.prototype.goHome = function () {
this.props.dispatch(actions.showConfigPage(false))
}
// create vault
-RevealSeedConfirmatoin.prototype.checkConfirmation = function(event) {
+RevealSeedConfirmatoin.prototype.checkConfirmation = function (event) {
if (event.key === 'Enter') {
event.preventDefault()
this.revealSeedWords()
}
}
-RevealSeedConfirmatoin.prototype.revealSeedWords = function(){
+RevealSeedConfirmatoin.prototype.revealSeedWords = function () {
this.setState({ confirmationWrong: false })
const confirmBox = document.getElementById('confirm-box')
diff --git a/ui/app/reducers.js b/ui/app/reducers.js
index 0f2ad4c21..17f94f230 100644
--- a/ui/app/reducers.js
+++ b/ui/app/reducers.js
@@ -1,5 +1,3 @@
-const combineReducers = require('redux').combineReducers
-const actions = require('./actions')
const extend = require('xtend')
//
@@ -11,8 +9,7 @@ const reduceApp = require('./reducers/app')
module.exports = rootReducer
-function rootReducer(state, action) {
-
+function rootReducer (state, action) {
// clone
state = extend(state)
@@ -34,8 +31,6 @@ function rootReducer(state, action) {
state.appState = reduceApp(state, action)
-
return state
-
}
diff --git a/ui/app/reducers/app.js b/ui/app/reducers/app.js
index 3ee9a61fe..f45be0433 100644
--- a/ui/app/reducers/app.js
+++ b/ui/app/reducers/app.js
@@ -1,12 +1,10 @@
const extend = require('xtend')
const actions = require('../actions')
-const valuesFor = require('../util').valuesFor
const txHelper = require('../../lib/tx-helper')
module.exports = reduceApp
-function reduceApp(state, action) {
-
+function reduceApp (state, action) {
// clone and defaults
const selectedAccount = state.metamask.selectedAccount
const pendingTxs = hasPendingTxs(state)
@@ -45,343 +43,341 @@ function reduceApp(state, action) {
switch (action.type) {
- case actions.TOGGLE_MENU:
- return extend(appState, {
- menuOpen: !appState.menuOpen,
- })
+ case actions.TOGGLE_MENU:
+ return extend(appState, {
+ menuOpen: !appState.menuOpen,
+ })
- case actions.SET_MENU_STATE:
- return extend(appState, {
- menuOpen: action.value,
- })
+ case actions.SET_MENU_STATE:
+ return extend(appState, {
+ menuOpen: action.value,
+ })
// intialize
- case actions.SHOW_CREATE_VAULT:
- return extend(appState, {
- currentView: {
- name: 'createVault',
- },
- transForward: true,
- warning: null,
- })
-
- case actions.SHOW_RESTORE_VAULT:
- return extend(appState, {
- currentView: {
- name: 'restoreVault',
- },
- transForward: true,
- })
-
- case actions.SHOW_INIT_MENU:
- return extend(appState, {
- currentView: defaultView,
- transForward: false,
- })
-
- case actions.SHOW_CONFIG_PAGE:
- return extend(appState, {
- currentView: {
- name: 'config',
- context: appState.currentView.context,
- },
- transForward: action.value,
- })
-
- case actions.SHOW_INFO_PAGE:
- return extend(appState, {
- currentView: {
- name: 'info',
- context: appState.currentView.context,
- },
- transForward: true,
- })
-
- case actions.CREATE_NEW_VAULT_IN_PROGRESS:
- return extend(appState, {
- currentView: {
- name: 'createVault',
- inProgress: true,
- },
- transForward: true,
- isLoading: true,
- })
-
- case actions.SHOW_NEW_VAULT_SEED:
- return extend(appState, {
- currentView: {
- name: 'createVaultComplete',
- seedWords: action.value,
- },
- transForward: true,
- isLoading: false,
- })
-
- case actions.SHOW_SEND_PAGE:
- return extend(appState, {
- currentView: {
- name: 'sendTransaction',
- context: appState.currentView.context,
- },
- transForward: true,
- warning: null,
- })
+ case actions.SHOW_CREATE_VAULT:
+ return extend(appState, {
+ currentView: {
+ name: 'createVault',
+ },
+ transForward: true,
+ warning: null,
+ })
- // unlock
+ case actions.SHOW_RESTORE_VAULT:
+ return extend(appState, {
+ currentView: {
+ name: 'restoreVault',
+ },
+ transForward: true,
+ })
- case actions.UNLOCK_METAMASK:
- return extend(appState, {
- detailView: {},
- transForward: true,
- isLoading: false,
- warning: null,
- })
-
- case actions.LOCK_METAMASK:
- return extend(appState, {
- currentView: defaultView,
- transForward: false,
- warning: null,
- })
+ case actions.SHOW_INIT_MENU:
+ return extend(appState, {
+ currentView: defaultView,
+ transForward: false,
+ })
- // reveal seed words
+ case actions.SHOW_CONFIG_PAGE:
+ return extend(appState, {
+ currentView: {
+ name: 'config',
+ context: appState.currentView.context,
+ },
+ transForward: action.value,
+ })
- case actions.REVEAL_SEED_CONFIRMATION:
- return extend(appState, {
- currentView: {
- name: 'reveal-seed-conf',
- },
- transForward: true,
- warning: null,
- })
+ case actions.SHOW_INFO_PAGE:
+ return extend(appState, {
+ currentView: {
+ name: 'info',
+ context: appState.currentView.context,
+ },
+ transForward: true,
+ })
+ case actions.CREATE_NEW_VAULT_IN_PROGRESS:
+ return extend(appState, {
+ currentView: {
+ name: 'createVault',
+ inProgress: true,
+ },
+ transForward: true,
+ isLoading: true,
+ })
- // accounts
+ case actions.SHOW_NEW_VAULT_SEED:
+ return extend(appState, {
+ currentView: {
+ name: 'createVaultComplete',
+ seedWords: action.value,
+ },
+ transForward: true,
+ isLoading: false,
+ })
- case actions.SET_SELECTED_ACCOUNT:
- return extend(appState, {
- activeAddress: action.value,
- })
-
- case actions.GO_HOME:
- return extend(appState, {
- currentView: extend(appState.currentView, {
- name: 'accountDetail',
- }),
- accountDetail: {
- subview: 'transactions',
- accountExport: 'none',
- privateKey: '',
- },
- transForward: false,
- warning: null,
- })
-
- case actions.SHOW_ACCOUNT_DETAIL:
- return extend(appState, {
- currentView: {
- name: 'accountDetail',
- context: action.value || account,
- },
- accountDetail: {
- subview: 'transactions',
- accountExport: 'none',
- privateKey: '',
- },
- transForward: false,
- })
-
- case actions.BACK_TO_ACCOUNT_DETAIL:
- return extend(appState, {
- currentView: {
- name: 'accountDetail',
- context: action.value,
- },
- accountDetail: {
- subview: 'transactions',
- accountExport: 'none',
- privateKey: '',
- },
- transForward: false,
- })
-
- case actions.SHOW_ACCOUNTS_PAGE:
- var seedWords = state.metamask.seedWords
- return extend(appState, {
- currentView: {
- name: seedWords ? 'createVaultComplete' : 'accounts',
- seedWords,
- },
- transForward: true,
- isLoading: false,
- warning: null,
- scrollToBottom: false,
- })
-
- case actions.REVEAL_ACCOUNT:
- return extend(appState, {
- scrollToBottom: true,
- })
-
- case actions.SHOW_CONF_TX_PAGE:
- return extend(appState, {
- currentView: {
- name: 'confTx',
- context: 0,
- },
- transForward: true,
- warning: null,
- })
-
- case actions.SHOW_CONF_MSG_PAGE:
- return extend(appState, {
- currentView: {
- name: 'confTx',
- context: 0,
- },
- transForward: true,
- warning: null,
- })
-
- case actions.COMPLETED_TX:
- var unconfTxs = state.metamask.unconfTxs
- var unconfMsgs = state.metamask.unconfMsgs
-
- var unconfTxList = txHelper(unconfTxs, unconfMsgs)
- .filter(tx => tx !== tx.id)
+ case actions.SHOW_SEND_PAGE:
+ return extend(appState, {
+ currentView: {
+ name: 'sendTransaction',
+ context: appState.currentView.context,
+ },
+ transForward: true,
+ warning: null,
+ })
+
+ // unlock
- if (unconfTxList && unconfTxList.length > 0) {
+ case actions.UNLOCK_METAMASK:
return extend(appState, {
+ detailView: {},
+ transForward: true,
+ isLoading: false,
+ warning: null,
+ })
+
+ case actions.LOCK_METAMASK:
+ return extend(appState, {
+ currentView: defaultView,
transForward: false,
+ warning: null,
+ })
+
+ // reveal seed words
+
+ case actions.REVEAL_SEED_CONFIRMATION:
+ return extend(appState, {
currentView: {
- name: 'confTx',
- context: 0,
+ name: 'reveal-seed-conf',
},
+ transForward: true,
warning: null,
})
- } else {
+
+ // accounts
+
+ case actions.SET_SELECTED_ACCOUNT:
return extend(appState, {
+ activeAddress: action.value,
+ })
+
+ case actions.GO_HOME:
+ return extend(appState, {
+ currentView: extend(appState.currentView, {
+ name: 'accountDetail',
+ }),
+ accountDetail: {
+ subview: 'transactions',
+ accountExport: 'none',
+ privateKey: '',
+ },
transForward: false,
warning: null,
+ })
+
+ case actions.SHOW_ACCOUNT_DETAIL:
+ return extend(appState, {
currentView: {
name: 'accountDetail',
- context: state.metamask.selectedAddress,
+ context: action.value,
},
accountDetail: {
subview: 'transactions',
+ accountExport: 'none',
+ privateKey: '',
},
+ transForward: false,
})
- }
- case actions.NEXT_TX:
- return extend(appState, {
- transForward: true,
- currentView: {
- name: 'confTx',
- context: ++appState.currentView.context,
+ case actions.BACK_TO_ACCOUNT_DETAIL:
+ return extend(appState, {
+ currentView: {
+ name: 'accountDetail',
+ context: action.value,
+ },
+ accountDetail: {
+ subview: 'transactions',
+ accountExport: 'none',
+ privateKey: '',
+ },
+ transForward: false,
+ })
+
+ case actions.SHOW_ACCOUNTS_PAGE:
+ return extend(appState, {
+ currentView: {
+ name: seedWords ? 'createVaultComplete' : 'accounts',
+ seedWords,
+ },
+ transForward: true,
+ isLoading: false,
warning: null,
- }
- })
-
- case actions.VIEW_PENDING_TX:
- const context = indexForPending(state, action.value)
- return extend(appState, {
- transForward: true,
- currentView: {
- name: 'confTx',
- context,
+ scrollToBottom: false,
+ })
+
+ case actions.REVEAL_ACCOUNT:
+ return extend(appState, {
+ scrollToBottom: true,
+ })
+
+ case actions.SHOW_CONF_TX_PAGE:
+ return extend(appState, {
+ currentView: {
+ name: 'confTx',
+ context: 0,
+ },
+ transForward: true,
warning: null,
- }
- })
-
- case actions.PREVIOUS_TX:
- return extend(appState, {
- transForward: false,
- currentView: {
- name: 'confTx',
- context: --appState.currentView.context,
+ })
+
+ case actions.SHOW_CONF_MSG_PAGE:
+ return extend(appState, {
+ currentView: {
+ name: 'confTx',
+ context: 0,
+ },
+ transForward: true,
warning: null,
+ })
+
+ case actions.COMPLETED_TX:
+ var unconfTxs = state.metamask.unconfTxs
+ var unconfMsgs = state.metamask.unconfMsgs
+
+ var unconfTxList = txHelper(unconfTxs, unconfMsgs)
+ .filter(tx => tx !== tx.id)
+
+ if (unconfTxList && unconfTxList.length > 0) {
+ return extend(appState, {
+ transForward: false,
+ currentView: {
+ name: 'confTx',
+ context: 0,
+ },
+ warning: null,
+ })
+ } else {
+ return extend(appState, {
+ transForward: false,
+ warning: null,
+ currentView: {
+ name: 'accountDetail',
+ context: state.metamask.selectedAddress,
+ },
+ accountDetail: {
+ subview: 'transactions',
+ },
+ })
}
- })
-
- case actions.TRANSACTION_ERROR:
- return extend(appState, {
- currentView: {
- name: 'confTx',
- errorMessage: 'There was a problem submitting this transaction.',
- },
- })
-
- case actions.UNLOCK_FAILED:
- return extend(appState, {
- warning: 'Incorrect password. Try again.'
- })
-
- case actions.SHOW_LOADING:
- return extend(appState, {
- isLoading: true,
- })
-
- case actions.HIDE_LOADING:
- return extend(appState, {
- isLoading: false,
- })
-
- case actions.CLEAR_SEED_WORD_CACHE:
- return extend(appState, {
- transForward: true,
- currentView: {},
- isLoading: false,
- accountDetail: {
- subview: 'transactions',
- accountExport: 'none',
- privateKey: '',
- },
- })
-
- case actions.DISPLAY_WARNING:
- return extend(appState, {
- warning: action.value,
- })
-
- case actions.HIDE_WARNING:
- return extend(appState, {
- warning: undefined,
- })
-
- case actions.REQUEST_ACCOUNT_EXPORT:
- return extend(appState, {
- transForward: true,
- currentView: {
- name: 'accountDetail',
- context: appState.currentView.context,
- },
- accountDetail: {
- subview: 'export',
- accountExport: 'requested',
- },
- })
-
- case actions.EXPORT_ACCOUNT:
- return extend(appState, {
- accountDetail: {
- subview: 'export',
- accountExport: 'completed',
- },
- })
-
- case actions.SHOW_PRIVATE_KEY:
- return extend(appState, {
- accountDetail: {
- subview: 'export',
- accountExport: 'completed',
- privateKey: action.value,
- },
- })
-
- default:
- return appState
+
+ case actions.NEXT_TX:
+ return extend(appState, {
+ transForward: true,
+ currentView: {
+ name: 'confTx',
+ context: ++appState.currentView.context,
+ warning: null,
+ },
+ })
+
+ case actions.VIEW_PENDING_TX:
+ const context = indexForPending(state, action.value)
+ return extend(appState, {
+ transForward: true,
+ currentView: {
+ name: 'confTx',
+ context,
+ warning: null,
+ },
+ })
+
+ case actions.PREVIOUS_TX:
+ return extend(appState, {
+ transForward: false,
+ currentView: {
+ name: 'confTx',
+ context: --appState.currentView.context,
+ warning: null,
+ },
+ })
+
+ case actions.TRANSACTION_ERROR:
+ return extend(appState, {
+ currentView: {
+ name: 'confTx',
+ errorMessage: 'There was a problem submitting this transaction.',
+ },
+ })
+
+ case actions.UNLOCK_FAILED:
+ return extend(appState, {
+ warning: 'Incorrect password. Try again.',
+ })
+
+ case actions.SHOW_LOADING:
+ return extend(appState, {
+ isLoading: true,
+ })
+
+ case actions.HIDE_LOADING:
+ return extend(appState, {
+ isLoading: false,
+ })
+
+ case actions.CLEAR_SEED_WORD_CACHE:
+ return extend(appState, {
+ transForward: true,
+ currentView: {},
+ isLoading: false,
+ accountDetail: {
+ subview: 'transactions',
+ accountExport: 'none',
+ privateKey: '',
+ },
+ })
+
+ case actions.DISPLAY_WARNING:
+ return extend(appState, {
+ warning: action.value,
+ })
+
+ case actions.HIDE_WARNING:
+ return extend(appState, {
+ warning: undefined,
+ })
+
+ case actions.REQUEST_ACCOUNT_EXPORT:
+ return extend(appState, {
+ transForward: true,
+ currentView: {
+ name: 'accountDetail',
+ context: appState.currentView.context,
+ },
+ accountDetail: {
+ subview: 'export',
+ accountExport: 'requested',
+ },
+ })
+
+ case actions.EXPORT_ACCOUNT:
+ return extend(appState, {
+ accountDetail: {
+ subview: 'export',
+ accountExport: 'completed',
+ },
+ })
+
+ case actions.SHOW_PRIVATE_KEY:
+ return extend(appState, {
+ accountDetail: {
+ subview: 'export',
+ accountExport: 'completed',
+ privateKey: action.value,
+ },
+ })
+
+ default:
+ return appState
}
}
@@ -392,7 +388,7 @@ function hasPendingTxs (state) {
return unconfTxList.length > 0
}
-function indexForPending(state, txId) {
+function indexForPending (state, txId) {
var unconfTxs = state.metamask.unconfTxs
var unconfMsgs = state.metamask.unconfMsgs
var unconfTxList = txHelper(unconfTxs, unconfMsgs)
diff --git a/ui/app/reducers/identities.js b/ui/app/reducers/identities.js
index 95ecd23f9..341a404e7 100644
--- a/ui/app/reducers/identities.js
+++ b/ui/app/reducers/identities.js
@@ -1,10 +1,8 @@
const extend = require('xtend')
-const actions = require('../actions')
module.exports = reduceIdentities
-function reduceIdentities(state, action) {
-
+function reduceIdentities (state, action) {
// clone + defaults
var idState = extend({
@@ -14,5 +12,4 @@ function reduceIdentities(state, action) {
default:
return idState
}
-
}
diff --git a/ui/app/reducers/metamask.js b/ui/app/reducers/metamask.js
index 646100120..f3ef8eb11 100644
--- a/ui/app/reducers/metamask.js
+++ b/ui/app/reducers/metamask.js
@@ -3,7 +3,8 @@ const actions = require('../actions')
module.exports = reduceMetamask
-function reduceMetamask(state, action) {
+function reduceMetamask (state, action) {
+ let newState
// clone + defaults
var metamaskState = extend({
@@ -17,99 +18,99 @@ function reduceMetamask(state, action) {
switch (action.type) {
- case actions.SHOW_ACCOUNTS_PAGE:
- var state = extend(metamaskState)
- delete state.seedWords
- return state
-
- case actions.UPDATE_METAMASK_STATE:
- return extend(metamaskState, action.value)
-
- case actions.AGREE_TO_DISCLAIMER:
- return extend(metamaskState, {
- isConfirmed: true,
- })
-
- case actions.UNLOCK_METAMASK:
- return extend(metamaskState, {
- isUnlocked: true,
- isInitialized: true,
- selectedAccount: action.value,
- })
-
- case actions.LOCK_METAMASK:
- return extend(metamaskState, {
- isUnlocked: false,
- })
-
- case actions.SET_RPC_TARGET:
- return extend(metamaskState, {
- provider: {
- type: 'rpc',
- rpcTarget: action.value,
- },
- })
-
- case actions.SET_PROVIDER_TYPE:
- return extend(metamaskState, {
- provider: {
- type: action.value,
- },
- })
-
- case actions.COMPLETED_TX:
- var stringId = String(action.id)
- var newState = extend(metamaskState, {
- unconfTxs: {},
- unconfMsgs: {},
- })
- for (var id in metamaskState.unconfTxs) {
- if (id !== stringId) {
- newState.unconfTxs[id] = metamaskState.unconfTxs[id]
+ case actions.SHOW_ACCOUNTS_PAGE:
+ newState = extend(metamaskState)
+ delete newState.seedWords
+ return newState
+
+ case actions.UPDATE_METAMASK_STATE:
+ return extend(metamaskState, action.value)
+
+ case actions.AGREE_TO_DISCLAIMER:
+ return extend(metamaskState, {
+ isConfirmed: true,
+ })
+
+ case actions.UNLOCK_METAMASK:
+ return extend(metamaskState, {
+ isUnlocked: true,
+ isInitialized: true,
+ selectedAccount: action.value,
+ })
+
+ case actions.LOCK_METAMASK:
+ return extend(metamaskState, {
+ isUnlocked: false,
+ })
+
+ case actions.SET_RPC_TARGET:
+ return extend(metamaskState, {
+ provider: {
+ type: 'rpc',
+ rpcTarget: action.value,
+ },
+ })
+
+ case actions.SET_PROVIDER_TYPE:
+ return extend(metamaskState, {
+ provider: {
+ type: action.value,
+ },
+ })
+
+ case actions.COMPLETED_TX:
+ var stringId = String(action.id)
+ newState = extend(metamaskState, {
+ unconfTxs: {},
+ unconfMsgs: {},
+ })
+ for (const id in metamaskState.unconfTxs) {
+ if (id !== stringId) {
+ newState.unconfTxs[id] = metamaskState.unconfTxs[id]
+ }
}
- }
- for (var id in metamaskState.unconfMsgs) {
- if (id !== stringId) {
- newState.unconfMsgs[id] = metamaskState.unconfMsgs[id]
+ for (const id in metamaskState.unconfMsgs) {
+ if (id !== stringId) {
+ newState.unconfMsgs[id] = metamaskState.unconfMsgs[id]
+ }
}
- }
- return newState
-
- case actions.SHOW_NEW_VAULT_SEED:
- return extend(metamaskState, {
- isUnlocked: true,
- isInitialized: false,
- })
-
- case actions.CLEAR_SEED_WORD_CACHE:
- var newState = extend(metamaskState, {
- isUnlocked: true,
- isInitialized: true,
- selectedAccount: action.value,
- })
- delete newState.seedWords
- return newState
-
- case actions.SHOW_ACCOUNT_DETAIL:
- const newState = extend(metamaskState, {
- isUnlocked: true,
- isInitialized: true,
- selectedAccount: action.value,
- selectedAddress: action.value,
- })
- delete newState.seedWords
- return newState
-
- case actions.SAVE_ACCOUNT_LABEL:
- const account = action.value.account
- const name = action.value.label
- var id = {}
- id[account] = extend(metamaskState.identities[account], { name })
- var identities = extend(metamaskState.identities, id)
- return extend(metamaskState, { identities })
-
- default:
- return metamaskState
+ return newState
+
+ case actions.SHOW_NEW_VAULT_SEED:
+ return extend(metamaskState, {
+ isUnlocked: true,
+ isInitialized: false,
+ })
+
+ case actions.CLEAR_SEED_WORD_CACHE:
+ newState = extend(metamaskState, {
+ isUnlocked: true,
+ isInitialized: true,
+ selectedAccount: action.value,
+ })
+ delete newState.seedWords
+ return newState
+
+ case actions.SHOW_ACCOUNT_DETAIL:
+ newState = extend(metamaskState, {
+ isUnlocked: true,
+ isInitialized: true,
+ selectedAccount: action.value,
+ selectedAddress: action.value,
+ })
+ delete newState.seedWords
+ return newState
+
+ case actions.SAVE_ACCOUNT_LABEL:
+ const account = action.value.account
+ const name = action.value.label
+ var id = {}
+ id[account] = extend(metamaskState.identities[account], { name })
+ var identities = extend(metamaskState.identities, id)
+ return extend(metamaskState, { identities })
+
+ default:
+ return metamaskState
}
}
diff --git a/ui/app/root.js b/ui/app/root.js
index 9fedf625f..9e7314b20 100644
--- a/ui/app/root.js
+++ b/ui/app/root.js
@@ -1,5 +1,4 @@
const inherits = require('util').inherits
-const React = require('react')
const Component = require('react').Component
const Provider = require('react-redux').Provider
const h = require('react-hyperscript')
@@ -7,17 +6,16 @@ const App = require('./app')
module.exports = Root
-
inherits(Root, Component)
-function Root() { Component.call(this) }
+function Root () { Component.call(this) }
-Root.prototype.render = function() {
+Root.prototype.render = function () {
return (
-
+
h(Provider, {
store: this.props.store,
}, [
- h(App)
+ h(App),
])
)
diff --git a/ui/app/send.js b/ui/app/send.js
index ba4e5bfff..82c378dd2 100644
--- a/ui/app/send.js
+++ b/ui/app/send.js
@@ -6,14 +6,13 @@ const Identicon = require('./components/identicon')
const actions = require('./actions')
const util = require('./util')
const numericBalance = require('./util').numericBalance
-const formatBalance = require('./util').formatBalance
const addressSummary = require('./util').addressSummary
const EtherBalance = require('./components/eth-balance')
const ethUtil = require('ethereumjs-util')
module.exports = connect(mapStateToProps)(SendTransactionScreen)
-function mapStateToProps(state) {
+function mapStateToProps (state) {
var result = {
address: state.metamask.selectedAccount,
accounts: state.metamask.accounts,
@@ -31,11 +30,11 @@ function mapStateToProps(state) {
}
inherits(SendTransactionScreen, Component)
-function SendTransactionScreen() {
+function SendTransactionScreen () {
Component.call(this)
}
-SendTransactionScreen.prototype.render = function() {
+SendTransactionScreen.prototype.render = function () {
var state = this.props
var address = state.address
var account = state.account
@@ -111,7 +110,7 @@ SendTransactionScreen.prototype.render = function() {
// h('div', formatBalance(account && account.balance)),
h(EtherBalance, {
value: account && account.balance,
- })
+ }),
]),
@@ -140,7 +139,7 @@ SendTransactionScreen.prototype.render = function() {
h('input.large-input', {
name: 'address',
placeholder: 'Recipient Address',
- })
+ }),
]),
// 'amount' and send button
@@ -160,7 +159,7 @@ SendTransactionScreen.prototype.render = function() {
style: {
textTransform: 'uppercase',
},
- }, 'Send')
+ }, 'Send'),
]),
@@ -187,7 +186,7 @@ SendTransactionScreen.prototype.render = function() {
style: {
width: '100%',
resize: 'none',
- }
+ },
}),
]),
@@ -196,31 +195,31 @@ SendTransactionScreen.prototype.render = function() {
)
}
-SendTransactionScreen.prototype.navigateToAccounts = function(event){
+SendTransactionScreen.prototype.navigateToAccounts = function (event) {
event.stopPropagation()
this.props.dispatch(actions.showAccountsPage())
}
-SendTransactionScreen.prototype.back = function() {
+SendTransactionScreen.prototype.back = function () {
var address = this.props.address
this.props.dispatch(actions.backToAccountDetail(address))
}
-SendTransactionScreen.prototype.onSubmit = function() {
-
+SendTransactionScreen.prototype.onSubmit = function () {
const recipient = document.querySelector('input[name="address"]').value
const input = document.querySelector('input[name="amount"]').value
const value = util.normalizeEthStringToWei(input)
const txData = document.querySelector('input[name="txData"]').value
const balance = this.props.balance
+ let message
if (value.gt(balance)) {
- var message = 'Insufficient funds.'
+ message = 'Insufficient funds.'
return this.props.dispatch(actions.displayWarning(message))
}
if ((!util.isValidAddress(recipient) && !txData) || (!recipient && !txData)) {
- var message = 'Recipient address is invalid.'
+ message = 'Recipient address is invalid.'
return this.props.dispatch(actions.displayWarning(message))
}
diff --git a/ui/app/settings.js b/ui/app/settings.js
index 9a11ef680..e56f4ee63 100644
--- a/ui/app/settings.js
+++ b/ui/app/settings.js
@@ -2,28 +2,20 @@ const inherits = require('util').inherits
const Component = require('react').Component
const h = require('react-hyperscript')
const connect = require('react-redux').connect
-const copyToClipboard = require('copy-to-clipboard')
const actions = require('./actions')
-const AccountPanel = require('./components/account-panel')
module.exports = connect(mapStateToProps)(AppSettingsPage)
-function mapStateToProps(state) {
- return {
- identities: state.metamask.identities,
- address: state.appState.currentView.context,
- }
+function mapStateToProps (state) {
+ return {}
}
inherits(AppSettingsPage, Component)
-function AppSettingsPage() {
+function AppSettingsPage () {
Component.call(this)
}
-
-AppSettingsPage.prototype.render = function() {
- var state = this.props
- var identity = state.identities[state.address]
+AppSettingsPage.prototype.render = function () {
return (
h('.account-detail-section.flex-column.flex-grow', [
@@ -47,23 +39,22 @@ AppSettingsPage.prototype.render = function() {
}),
])
-
+
)
}
-AppSettingsPage.prototype.componentDidMount = function(){
+AppSettingsPage.prototype.componentDidMount = function () {
document.querySelector('input').focus()
}
-AppSettingsPage.prototype.onKeyPress = function(event) {
+AppSettingsPage.prototype.onKeyPress = function (event) {
// get submit event
if (event.key === 'Enter') {
// this.submitPassword(event)
}
}
-
-AppSettingsPage.prototype.navigateToAccounts = function(event){
+AppSettingsPage.prototype.navigateToAccounts = function (event) {
event.stopPropagation()
this.props.dispatch(actions.showAccountsPage())
}
diff --git a/ui/app/store.js b/ui/app/store.js
index a738f1a12..ab6422e73 100644
--- a/ui/app/store.js
+++ b/ui/app/store.js
@@ -6,7 +6,6 @@ const rootReducer = require('./reducers')
module.exports = configureStore
-
const loggerMiddleware = createLogger()
const createStoreWithMiddleware = applyMiddleware(
@@ -14,6 +13,6 @@ const createStoreWithMiddleware = applyMiddleware(
loggerMiddleware
)(createStore)
-function configureStore(initialState) {
+function configureStore (initialState) {
return createStoreWithMiddleware(rootReducer, initialState)
}
diff --git a/ui/app/template.js b/ui/app/template.js
index f16f3c363..d15b30fd2 100644
--- a/ui/app/template.js
+++ b/ui/app/template.js
@@ -2,29 +2,28 @@ const inherits = require('util').inherits
const Component = require('react').Component
const h = require('react-hyperscript')
const connect = require('react-redux').connect
-const actions = require('./actions')
module.exports = connect(mapStateToProps)(COMPONENTNAME)
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {}
}
inherits(COMPONENTNAME, Component)
-function COMPONENTNAME() {
+function COMPONENTNAME () {
Component.call(this)
}
-COMPONENTNAME.prototype.render = function() {
+COMPONENTNAME.prototype.render = function () {
const props = this.props
return (
h('div', {
style: {
background: 'blue',
- }
+ },
}, [
- 'Hello, world!'
+ `Hello, ${props.sender}`,
])
)
}
diff --git a/ui/app/unlock.js b/ui/app/unlock.js
index 687bb5e52..a7896d640 100644
--- a/ui/app/unlock.js
+++ b/ui/app/unlock.js
@@ -9,20 +9,19 @@ const EventEmitter = require('events').EventEmitter
module.exports = connect(mapStateToProps)(UnlockScreen)
-
inherits(UnlockScreen, Component)
-function UnlockScreen() {
+function UnlockScreen () {
Component.call(this)
this.animationEventEmitter = new EventEmitter()
}
-function mapStateToProps(state) {
+function mapStateToProps (state) {
return {
warning: state.appState.warning,
}
}
-UnlockScreen.prototype.render = function() {
+UnlockScreen.prototype.render = function () {
const state = this.props
const warning = state.warning
return (
@@ -55,7 +54,7 @@ UnlockScreen.prototype.render = function() {
h('.error', {
style: {
display: warning ? 'block' : 'none',
- }
+ },
}, warning),
h('button.primary.cursor-pointer', {
@@ -70,23 +69,23 @@ UnlockScreen.prototype.render = function() {
)
}
-UnlockScreen.prototype.componentDidMount = function(){
+UnlockScreen.prototype.componentDidMount = function () {
document.getElementById('password-box').focus()
}
-UnlockScreen.prototype.onSubmit = function(event) {
+UnlockScreen.prototype.onSubmit = function (event) {
const input = document.getElementById('password-box')
const password = input.value
this.props.dispatch(actions.tryUnlockMetamask(password))
}
-UnlockScreen.prototype.onKeyPress = function(event) {
+UnlockScreen.prototype.onKeyPress = function (event) {
if (event.key === 'Enter') {
this.submitPassword(event)
}
}
-UnlockScreen.prototype.submitPassword = function(event){
+UnlockScreen.prototype.submitPassword = function (event) {
var element = event.target
var password = element.value
// reset input
@@ -94,7 +93,7 @@ UnlockScreen.prototype.submitPassword = function(event){
this.props.dispatch(actions.tryUnlockMetamask(password))
}
-UnlockScreen.prototype.inputChanged = function(event){
+UnlockScreen.prototype.inputChanged = function (event) {
// tell mascot to look at page action
var element = event.target
var boundingRect = element.getBoundingClientRect()
@@ -105,6 +104,6 @@ UnlockScreen.prototype.inputChanged = function(event){
})
}
-UnlockScreen.prototype.emitAnim = function(name, a, b, c){
+UnlockScreen.prototype.emitAnim = function (name, a, b, c) {
this.animationEventEmitter.emit(name, a, b, c)
}
diff --git a/ui/app/util.js b/ui/app/util.js
index 9e08e0bb2..db12a1282 100644
--- a/ui/app/util.js
+++ b/ui/app/util.js
@@ -1,17 +1,17 @@
const ethUtil = require('ethereumjs-util')
var valueTable = {
- wei: '1000000000000000000',
- kwei: '1000000000000000',
- mwei: '1000000000000',
- gwei: '1000000000',
+ wei: '1000000000000000000',
+ kwei: '1000000000000000',
+ mwei: '1000000000000',
+ gwei: '1000000000',
szabo: '1000000',
- finney:'1000',
+ finney: '1000',
ether: '1',
- kether:'0.001',
- mether:'0.000001',
- gether:'0.000000001',
- tether:'0.000000000001',
+ kether: '0.001',
+ mether: '0.000001',
+ gether: '0.000000001',
+ tether: '0.000000000001',
}
var bnTable = {}
for (var currency in valueTable) {
@@ -37,25 +37,24 @@ module.exports = {
bnTable: bnTable,
}
-
-function valuesFor(obj) {
+function valuesFor (obj) {
if (!obj) return []
return Object.keys(obj)
- .map(function(key){ return obj[key] })
+ .map(function (key) { return obj[key] })
}
-function addressSummary(address) {
+function addressSummary (address) {
if (!address) return ''
var checked = ethUtil.toChecksumAddress(address)
- return checked ? checked.slice(0,2+8)+'...'+checked.slice(-4) : '...'
+ return checked ? checked.slice(0, 2 + 8) + '...' + checked.slice(-4) : '...'
}
-function isValidAddress(address) {
+function isValidAddress (address) {
var prefixed = ethUtil.addHexPrefix(address)
return (isAllOneCase(prefixed) && ethUtil.isValidAddress(prefixed)) || ethUtil.isValidChecksumAddress(prefixed)
}
-function isAllOneCase(address) {
+function isAllOneCase (address) {
if (!address) return true
var lower = address.toLowerCase()
var upper = address.toUpperCase()
@@ -63,81 +62,81 @@ function isAllOneCase(address) {
}
// Takes wei Hex, returns wei BN, even if input is null
-function numericBalance(balance) {
+function numericBalance (balance) {
if (!balance) return new ethUtil.BN(0, 16)
var stripped = ethUtil.stripHexPrefix(balance)
return new ethUtil.BN(stripped, 16)
}
// Takes eth BN, returns BN wei
-function ethToWei(bn) {
+function ethToWei (bn) {
var eth = new ethUtil.BN('1000000000000000000')
var wei = bn.mul(eth)
return wei
}
// Takes BN in Wei, returns BN in eth
-function weiToEth(bn) {
+function weiToEth (bn) {
var diff = new ethUtil.BN('1000000000000000000')
var eth = bn.div(diff)
return eth
}
// Takes hex, returns [beforeDecimal, afterDecimal]
-function parseBalance(balance) {
- let beforeDecimal, afterDecimal
- let wei = numericBalance(balance).toString()
- let trailingZeros = /0+$/
-
- beforeDecimal = wei.length > 18 ? wei.slice(0, wei.length - 18) : '0'
- afterDecimal = ("000000000000000000" + wei).slice(-18).replace(trailingZeros, "")
- if(afterDecimal == ""){afterDecimal = "0" }
+function parseBalance (balance) {
+ var beforeDecimal, afterDecimal
+ const wei = numericBalance(balance).toString()
+ const trailingZeros = /0+$/
+
+ beforeDecimal = wei.length > 18 ? wei.slice(0, wei.length - 18) : '0'
+ afterDecimal = ('000000000000000000' + wei).slice(-18).replace(trailingZeros, '')
+ if (afterDecimal === '') { afterDecimal = '0' }
return [beforeDecimal, afterDecimal]
}
// Takes wei hex, returns "None" or "${formattedAmount} ETH"
-function formatBalance(balance, decimalsToKeep) {
+function formatBalance (balance, decimalsToKeep) {
var parsed = parseBalance(balance)
var beforeDecimal = parsed[0]
var afterDecimal = parsed[1]
- var formatted = "None"
- if(decimalsToKeep === undefined){
- if(beforeDecimal === '0'){
- if(afterDecimal !== '0'){
- var sigFigs = afterDecimal.match(/^0*(.{2})/) //default: grabs 2 most significant digits
- if(sigFigs){afterDecimal = sigFigs[0]}
+ var formatted = 'None'
+ if (decimalsToKeep === undefined) {
+ if (beforeDecimal === '0') {
+ if (afterDecimal !== '0') {
+ var sigFigs = afterDecimal.match(/^0*(.{2})/) // default: grabs 2 most significant digits
+ if (sigFigs) { afterDecimal = sigFigs[0] }
formatted = '0.' + afterDecimal + ' ETH'
}
- }else{
- formatted = beforeDecimal + "." + afterDecimal.slice(0,3) + ' ETH'
+ } else {
+ formatted = beforeDecimal + '.' + afterDecimal.slice(0, 3) + ' ETH'
}
- }else{
- afterDecimal += Array(decimalsToKeep).join("0")
- formatted = beforeDecimal + "." + afterDecimal.slice(0,decimalsToKeep) + ' ETH'
+ } else {
+ afterDecimal += Array(decimalsToKeep).join('0')
+ formatted = beforeDecimal + '.' + afterDecimal.slice(0, decimalsToKeep) + ' ETH'
}
return formatted
}
-function dataSize(data) {
+function dataSize (data) {
var size = data ? ethUtil.stripHexPrefix(data).length : 0
- return size+' bytes'
+ return size + ' bytes'
}
// Takes a BN and an ethereum currency name,
// returns a BN in wei
-function normalizeToWei(amount, currency) {
+function normalizeToWei (amount, currency) {
try {
return amount.mul(bnTable.wei).div(bnTable[currency])
} catch (e) {}
return amount
}
-function normalizeEthStringToWei(str) {
+function normalizeEthStringToWei (str) {
const parts = str.split('.')
let eth = new ethUtil.BN(parts[0], 10).mul(bnTable.wei)
if (parts[1]) {
var decimal = parts[1]
- while(decimal.length < 18) {
+ while (decimal.length < 18) {
decimal += '0'
}
const decimalBN = new ethUtil.BN(decimal, 10)
@@ -147,22 +146,22 @@ function normalizeEthStringToWei(str) {
}
var multiple = new ethUtil.BN('10000', 10)
-function normalizeNumberToWei(n, currency) {
+function normalizeNumberToWei (n, currency) {
var enlarged = n * 10000
var amount = new ethUtil.BN(String(enlarged), 10)
return normalizeToWei(amount, currency).div(multiple)
}
-function readableDate(ms) {
+function readableDate (ms) {
var date = new Date(ms)
var month = date.getMonth()
var day = date.getDate()
var year = date.getFullYear()
var hours = date.getHours()
- var minutes = "0" + date.getMinutes()
- var seconds = "0" + date.getSeconds()
+ var minutes = '0' + date.getMinutes()
+ var seconds = '0' + date.getSeconds()
- var date = `${month}/${day}/${year}`
+ var dateStr = `${month}/${day}/${year}`
var time = `${hours}:${minutes.substr(-2)}:${seconds.substr(-2)}`
- return `${date} ${time}`
+ return `${dateStr} ${time}`
}