mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 01:39:44 +01:00
Delete uneeded files from old-ui.
This commit is contained in:
parent
8defb365b4
commit
800eb2b969
File diff suppressed because it is too large
Load Diff
@ -1,76 +0,0 @@
|
||||
const extend = require('xtend')
|
||||
const copyToClipboard = require('copy-to-clipboard')
|
||||
|
||||
//
|
||||
// Sub-Reducers take in the complete state and return their sub-state
|
||||
//
|
||||
const reduceIdentities = require('./reducers/identities')
|
||||
const reduceMetamask = require('./reducers/metamask')
|
||||
const reduceApp = require('./reducers/app')
|
||||
|
||||
window.METAMASK_CACHED_LOG_STATE = null
|
||||
|
||||
module.exports = rootReducer
|
||||
|
||||
function rootReducer (state, action) {
|
||||
// clone
|
||||
state = extend(state)
|
||||
|
||||
if (action.type === 'GLOBAL_FORCE_UPDATE') {
|
||||
return action.value
|
||||
}
|
||||
|
||||
//
|
||||
// Identities
|
||||
//
|
||||
|
||||
state.identities = reduceIdentities(state, action)
|
||||
|
||||
//
|
||||
// MetaMask
|
||||
//
|
||||
|
||||
state.metamask = reduceMetamask(state, action)
|
||||
|
||||
//
|
||||
// AppState
|
||||
//
|
||||
|
||||
state.appState = reduceApp(state, action)
|
||||
|
||||
window.METAMASK_CACHED_LOG_STATE = state
|
||||
return state
|
||||
}
|
||||
|
||||
window.logStateString = function (cb) {
|
||||
const state = window.METAMASK_CACHED_LOG_STATE
|
||||
const version = global.platform.getVersion()
|
||||
const browser = window.navigator.userAgent
|
||||
return global.platform.getPlatformInfo((err, platform) => {
|
||||
if (err) {
|
||||
return cb(err)
|
||||
}
|
||||
state.version = version
|
||||
state.platform = platform
|
||||
state.browser = browser
|
||||
const stateString = JSON.stringify(state, removeSeedWords, 2)
|
||||
return cb(null, stateString)
|
||||
})
|
||||
}
|
||||
|
||||
window.logState = function (toClipboard) {
|
||||
return window.logStateString((err, result) => {
|
||||
if (err) {
|
||||
console.error(err.message)
|
||||
} else if (toClipboard) {
|
||||
copyToClipboard(result)
|
||||
console.log('State log copied')
|
||||
} else {
|
||||
console.log(result)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function removeSeedWords (key, value) {
|
||||
return key === 'seedWords' ? undefined : value
|
||||
}
|
@ -1,599 +0,0 @@
|
||||
const extend = require('xtend')
|
||||
const actions = require('../../../ui/app/actions')
|
||||
const txHelper = require('../../lib/tx-helper')
|
||||
|
||||
module.exports = reduceApp
|
||||
|
||||
|
||||
function reduceApp (state, action) {
|
||||
log.debug('App Reducer got ' + action.type)
|
||||
// clone and defaults
|
||||
const selectedAddress = state.metamask.selectedAddress
|
||||
const hasUnconfActions = checkUnconfActions(state)
|
||||
let name = 'accounts'
|
||||
if (selectedAddress) {
|
||||
name = 'accountDetail'
|
||||
}
|
||||
if (hasUnconfActions) {
|
||||
log.debug('pending txs detected, defaulting to conf-tx view.')
|
||||
name = 'confTx'
|
||||
}
|
||||
|
||||
var defaultView = {
|
||||
name,
|
||||
detailView: null,
|
||||
context: selectedAddress,
|
||||
}
|
||||
|
||||
// confirm seed words
|
||||
var seedWords = state.metamask.seedWords
|
||||
var seedConfView = {
|
||||
name: 'createVaultComplete',
|
||||
seedWords,
|
||||
}
|
||||
|
||||
// default state
|
||||
var appState = extend({
|
||||
shouldClose: false,
|
||||
menuOpen: false,
|
||||
currentView: seedWords ? seedConfView : defaultView,
|
||||
accountDetail: {
|
||||
subview: 'transactions',
|
||||
},
|
||||
// Used to render transition direction
|
||||
transForward: true,
|
||||
// Used to display loading indicator
|
||||
isLoading: false,
|
||||
// Used to display error text
|
||||
warning: null,
|
||||
}, state.appState)
|
||||
|
||||
switch (action.type) {
|
||||
|
||||
// transition methods
|
||||
|
||||
case actions.TRANSITION_FORWARD:
|
||||
return extend(appState, {
|
||||
transForward: true,
|
||||
})
|
||||
|
||||
case actions.TRANSITION_BACKWARD:
|
||||
return extend(appState, {
|
||||
transForward: false,
|
||||
})
|
||||
|
||||
// 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,
|
||||
forgottenPassword: true,
|
||||
})
|
||||
|
||||
case actions.FORGOT_PASSWORD:
|
||||
return extend(appState, {
|
||||
currentView: {
|
||||
name: 'restoreVault',
|
||||
},
|
||||
transForward: false,
|
||||
forgottenPassword: 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_ADD_TOKEN_PAGE:
|
||||
return extend(appState, {
|
||||
currentView: {
|
||||
name: 'add-token',
|
||||
context: appState.currentView.context,
|
||||
},
|
||||
transForward: action.value,
|
||||
})
|
||||
|
||||
case actions.SHOW_IMPORT_PAGE:
|
||||
|
||||
return extend(appState, {
|
||||
currentView: {
|
||||
name: 'import-menu',
|
||||
},
|
||||
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,
|
||||
})
|
||||
|
||||
case actions.SHOW_NEW_VAULT_SEED:
|
||||
return extend(appState, {
|
||||
currentView: {
|
||||
name: 'createVaultComplete',
|
||||
seedWords: action.value,
|
||||
},
|
||||
transForward: true,
|
||||
isLoading: false,
|
||||
})
|
||||
|
||||
case actions.NEW_ACCOUNT_SCREEN:
|
||||
return extend(appState, {
|
||||
currentView: {
|
||||
name: 'new-account',
|
||||
context: appState.currentView.context,
|
||||
},
|
||||
transForward: true,
|
||||
})
|
||||
|
||||
case actions.SHOW_SEND_PAGE:
|
||||
return extend(appState, {
|
||||
currentView: {
|
||||
name: 'sendTransaction',
|
||||
context: appState.currentView.context,
|
||||
},
|
||||
transForward: true,
|
||||
warning: null,
|
||||
})
|
||||
|
||||
case actions.SHOW_NEW_KEYCHAIN:
|
||||
return extend(appState, {
|
||||
currentView: {
|
||||
name: 'newKeychain',
|
||||
context: appState.currentView.context,
|
||||
},
|
||||
transForward: true,
|
||||
})
|
||||
|
||||
// unlock
|
||||
|
||||
case actions.UNLOCK_METAMASK:
|
||||
return extend(appState, {
|
||||
forgottenPassword: appState.forgottenPassword ? !appState.forgottenPassword : null,
|
||||
detailView: {},
|
||||
transForward: true,
|
||||
isLoading: false,
|
||||
warning: null,
|
||||
})
|
||||
|
||||
case actions.LOCK_METAMASK:
|
||||
return extend(appState, {
|
||||
currentView: defaultView,
|
||||
transForward: false,
|
||||
warning: null,
|
||||
})
|
||||
|
||||
case actions.BACK_TO_INIT_MENU:
|
||||
return extend(appState, {
|
||||
warning: null,
|
||||
transForward: false,
|
||||
forgottenPassword: true,
|
||||
currentView: {
|
||||
name: 'InitMenu',
|
||||
},
|
||||
})
|
||||
|
||||
case actions.BACK_TO_UNLOCK_VIEW:
|
||||
return extend(appState, {
|
||||
warning: null,
|
||||
transForward: true,
|
||||
forgottenPassword: false,
|
||||
currentView: {
|
||||
name: 'UnlockScreen',
|
||||
},
|
||||
})
|
||||
// reveal seed words
|
||||
|
||||
case actions.REVEAL_SEED_CONFIRMATION:
|
||||
return extend(appState, {
|
||||
currentView: {
|
||||
name: 'reveal-seed-conf',
|
||||
},
|
||||
transForward: true,
|
||||
warning: null,
|
||||
})
|
||||
|
||||
// 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, {
|
||||
forgottenPassword: appState.forgottenPassword ? !appState.forgottenPassword : null,
|
||||
currentView: {
|
||||
name: 'accountDetail',
|
||||
context: action.value,
|
||||
},
|
||||
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:
|
||||
return extend(appState, {
|
||||
currentView: {
|
||||
name: seedWords ? 'createVaultComplete' : 'accounts',
|
||||
seedWords,
|
||||
},
|
||||
transForward: true,
|
||||
isLoading: false,
|
||||
warning: null,
|
||||
scrollToBottom: false,
|
||||
forgottenPassword: false,
|
||||
})
|
||||
|
||||
case actions.SHOW_NOTICE:
|
||||
return extend(appState, {
|
||||
transForward: true,
|
||||
isLoading: 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: action.transForward,
|
||||
warning: null,
|
||||
isLoading: false,
|
||||
})
|
||||
|
||||
case actions.SHOW_CONF_MSG_PAGE:
|
||||
return extend(appState, {
|
||||
currentView: {
|
||||
name: hasUnconfActions ? 'confTx' : 'account-detail',
|
||||
context: 0,
|
||||
},
|
||||
transForward: true,
|
||||
warning: null,
|
||||
isLoading: false,
|
||||
})
|
||||
|
||||
case actions.COMPLETED_TX:
|
||||
log.debug('reducing COMPLETED_TX for tx ' + action.value)
|
||||
const otherUnconfActions = getUnconfActionList(state)
|
||||
.filter(tx => tx.id !== action.value)
|
||||
const hasOtherUnconfActions = otherUnconfActions.length > 0
|
||||
|
||||
if (hasOtherUnconfActions) {
|
||||
log.debug('reducer detected txs - rendering confTx view')
|
||||
return extend(appState, {
|
||||
transForward: false,
|
||||
currentView: {
|
||||
name: 'confTx',
|
||||
context: 0,
|
||||
},
|
||||
warning: null,
|
||||
})
|
||||
} else {
|
||||
log.debug('attempting to close popup')
|
||||
return extend(appState, {
|
||||
// indicate notification should close
|
||||
shouldClose: true,
|
||||
transForward: false,
|
||||
warning: null,
|
||||
currentView: {
|
||||
name: 'accountDetail',
|
||||
context: state.metamask.selectedAddress,
|
||||
},
|
||||
accountDetail: {
|
||||
subview: 'transactions',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
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: action.value || 'Incorrect password. Try again.',
|
||||
})
|
||||
|
||||
case actions.SHOW_LOADING:
|
||||
return extend(appState, {
|
||||
isLoading: true,
|
||||
loadingMessage: action.value,
|
||||
})
|
||||
|
||||
case actions.HIDE_LOADING:
|
||||
return extend(appState, {
|
||||
isLoading: false,
|
||||
})
|
||||
|
||||
case actions.SHOW_SUB_LOADING_INDICATION:
|
||||
return extend(appState, {
|
||||
isSubLoading: true,
|
||||
})
|
||||
|
||||
case actions.HIDE_SUB_LOADING_INDICATION:
|
||||
return extend(appState, {
|
||||
isSubLoading: 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,
|
||||
isLoading: false,
|
||||
})
|
||||
|
||||
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,
|
||||
},
|
||||
})
|
||||
|
||||
case actions.BUY_ETH_VIEW:
|
||||
return extend(appState, {
|
||||
transForward: true,
|
||||
currentView: {
|
||||
name: 'buyEth',
|
||||
context: appState.currentView.name,
|
||||
},
|
||||
identity: state.metamask.identities[action.value],
|
||||
buyView: {
|
||||
subview: 'Coinbase',
|
||||
amount: '15.00',
|
||||
buyAddress: action.value,
|
||||
formView: {
|
||||
coinbase: true,
|
||||
shapeshift: false,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
case actions.ONBOARDING_BUY_ETH_VIEW:
|
||||
return extend(appState, {
|
||||
transForward: true,
|
||||
currentView: {
|
||||
name: 'onboardingBuyEth',
|
||||
context: appState.currentView.name,
|
||||
},
|
||||
identity: state.metamask.identities[action.value],
|
||||
})
|
||||
|
||||
case actions.COINBASE_SUBVIEW:
|
||||
return extend(appState, {
|
||||
buyView: {
|
||||
subview: 'Coinbase',
|
||||
formView: {
|
||||
coinbase: true,
|
||||
shapeshift: false,
|
||||
},
|
||||
buyAddress: appState.buyView.buyAddress,
|
||||
amount: appState.buyView.amount,
|
||||
},
|
||||
})
|
||||
|
||||
case actions.SHAPESHIFT_SUBVIEW:
|
||||
return extend(appState, {
|
||||
buyView: {
|
||||
subview: 'ShapeShift',
|
||||
formView: {
|
||||
coinbase: false,
|
||||
shapeshift: true,
|
||||
marketinfo: action.value.marketinfo,
|
||||
coinOptions: action.value.coinOptions,
|
||||
},
|
||||
buyAddress: appState.buyView.buyAddress,
|
||||
amount: appState.buyView.amount,
|
||||
},
|
||||
})
|
||||
|
||||
case actions.PAIR_UPDATE:
|
||||
return extend(appState, {
|
||||
buyView: {
|
||||
subview: 'ShapeShift',
|
||||
formView: {
|
||||
coinbase: false,
|
||||
shapeshift: true,
|
||||
marketinfo: action.value.marketinfo,
|
||||
coinOptions: appState.buyView.formView.coinOptions,
|
||||
},
|
||||
buyAddress: appState.buyView.buyAddress,
|
||||
amount: appState.buyView.amount,
|
||||
warning: null,
|
||||
},
|
||||
})
|
||||
|
||||
case actions.SHOW_QR:
|
||||
return extend(appState, {
|
||||
qrRequested: true,
|
||||
transForward: true,
|
||||
|
||||
Qr: {
|
||||
message: action.value.message,
|
||||
data: action.value.data,
|
||||
},
|
||||
})
|
||||
|
||||
case actions.SHOW_QR_VIEW:
|
||||
return extend(appState, {
|
||||
currentView: {
|
||||
name: 'qr',
|
||||
context: appState.currentView.context,
|
||||
},
|
||||
transForward: true,
|
||||
Qr: {
|
||||
message: action.value.message,
|
||||
data: action.value.data,
|
||||
},
|
||||
})
|
||||
default:
|
||||
return appState
|
||||
}
|
||||
}
|
||||
|
||||
function checkUnconfActions (state) {
|
||||
const unconfActionList = getUnconfActionList(state)
|
||||
const hasUnconfActions = unconfActionList.length > 0
|
||||
return hasUnconfActions
|
||||
}
|
||||
|
||||
function getUnconfActionList (state) {
|
||||
const { unapprovedTxs, unapprovedMsgs,
|
||||
unapprovedPersonalMsgs, unapprovedTypedMessages, network } = state.metamask
|
||||
|
||||
const unconfActionList = txHelper(unapprovedTxs, unapprovedMsgs, unapprovedPersonalMsgs, unapprovedTypedMessages, network)
|
||||
return unconfActionList
|
||||
}
|
||||
|
||||
function indexForPending (state, txId) {
|
||||
const unconfTxList = getUnconfActionList(state)
|
||||
const match = unconfTxList.find((tx) => tx.id === txId)
|
||||
const index = unconfTxList.indexOf(match)
|
||||
return index
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
const extend = require('xtend')
|
||||
|
||||
module.exports = reduceIdentities
|
||||
|
||||
function reduceIdentities (state, action) {
|
||||
// clone + defaults
|
||||
var idState = extend({
|
||||
|
||||
}, state.identities)
|
||||
|
||||
switch (action.type) {
|
||||
default:
|
||||
return idState
|
||||
}
|
||||
}
|
@ -1,166 +0,0 @@
|
||||
const extend = require('xtend')
|
||||
const actions = require('../../../ui/app/actions')
|
||||
const MetamascaraPlatform = require('../../../app/scripts/platforms/window')
|
||||
|
||||
module.exports = reduceMetamask
|
||||
|
||||
function reduceMetamask (state, action) {
|
||||
let newState
|
||||
|
||||
// clone + defaults
|
||||
var metamaskState = extend({
|
||||
isInitialized: false,
|
||||
isUnlocked: false,
|
||||
isMascara: window.platform instanceof MetamascaraPlatform,
|
||||
rpcTarget: 'https://rawtestrpc.metamask.io/',
|
||||
identities: {},
|
||||
unapprovedTxs: {},
|
||||
noActiveNotices: true,
|
||||
lastUnreadNotice: undefined,
|
||||
frequentRpcList: [],
|
||||
addressBook: [],
|
||||
tokenExchangeRates: {},
|
||||
coinOptions: {},
|
||||
featureFlags: {},
|
||||
}, state.metamask)
|
||||
|
||||
switch (action.type) {
|
||||
|
||||
case actions.SHOW_ACCOUNTS_PAGE:
|
||||
newState = extend(metamaskState)
|
||||
delete newState.seedWords
|
||||
return newState
|
||||
|
||||
case actions.SHOW_NOTICE:
|
||||
return extend(metamaskState, {
|
||||
noActiveNotices: false,
|
||||
lastUnreadNotice: action.value,
|
||||
})
|
||||
|
||||
case actions.CLEAR_NOTICES:
|
||||
return extend(metamaskState, {
|
||||
noActiveNotices: true,
|
||||
})
|
||||
|
||||
case actions.UPDATE_METAMASK_STATE:
|
||||
return extend(metamaskState, action.value)
|
||||
|
||||
case actions.UNLOCK_METAMASK:
|
||||
return extend(metamaskState, {
|
||||
isUnlocked: true,
|
||||
isInitialized: true,
|
||||
selectedAddress: action.value,
|
||||
})
|
||||
|
||||
case actions.LOCK_METAMASK:
|
||||
return extend(metamaskState, {
|
||||
isUnlocked: false,
|
||||
})
|
||||
|
||||
case actions.SET_RPC_LIST:
|
||||
return extend(metamaskState, {
|
||||
frequentRpcList: action.value,
|
||||
})
|
||||
|
||||
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, {
|
||||
unapprovedTxs: {},
|
||||
unapprovedMsgs: {},
|
||||
})
|
||||
for (const id in metamaskState.unapprovedTxs) {
|
||||
if (id !== stringId) {
|
||||
newState.unapprovedTxs[id] = metamaskState.unapprovedTxs[id]
|
||||
}
|
||||
}
|
||||
for (const id in metamaskState.unapprovedMsgs) {
|
||||
if (id !== stringId) {
|
||||
newState.unapprovedMsgs[id] = metamaskState.unapprovedMsgs[id]
|
||||
}
|
||||
}
|
||||
return newState
|
||||
|
||||
case actions.SHOW_NEW_VAULT_SEED:
|
||||
return extend(metamaskState, {
|
||||
isUnlocked: true,
|
||||
isInitialized: false,
|
||||
seedWords: action.value,
|
||||
})
|
||||
|
||||
case actions.CLEAR_SEED_WORD_CACHE:
|
||||
newState = extend(metamaskState, {
|
||||
isUnlocked: true,
|
||||
isInitialized: true,
|
||||
selectedAddress: action.value,
|
||||
})
|
||||
delete newState.seedWords
|
||||
return newState
|
||||
|
||||
case actions.SHOW_ACCOUNT_DETAIL:
|
||||
newState = extend(metamaskState, {
|
||||
isUnlocked: true,
|
||||
isInitialized: true,
|
||||
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 })
|
||||
|
||||
case actions.SET_CURRENT_FIAT:
|
||||
return extend(metamaskState, {
|
||||
currentCurrency: action.value.currentCurrency,
|
||||
conversionRate: action.value.conversionRate,
|
||||
conversionDate: action.value.conversionDate,
|
||||
})
|
||||
|
||||
case actions.PAIR_UPDATE:
|
||||
const { value: { marketinfo: pairMarketInfo } } = action
|
||||
return extend(metamaskState, {
|
||||
tokenExchangeRates: {
|
||||
...metamaskState.tokenExchangeRates,
|
||||
[pairMarketInfo.pair]: pairMarketInfo,
|
||||
},
|
||||
})
|
||||
|
||||
case actions.SHAPESHIFT_SUBVIEW:
|
||||
const { value: { marketinfo, coinOptions } } = action
|
||||
return extend(metamaskState, {
|
||||
tokenExchangeRates: {
|
||||
...metamaskState.tokenExchangeRates,
|
||||
[marketinfo.pair]: marketinfo,
|
||||
},
|
||||
coinOptions,
|
||||
})
|
||||
|
||||
case actions.UPDATE_FEATURE_FLAGS:
|
||||
return extend(metamaskState, {
|
||||
featureFlags: action.value,
|
||||
})
|
||||
|
||||
default:
|
||||
return metamaskState
|
||||
|
||||
}
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
const inherits = require('util').inherits
|
||||
const Component = require('react').Component
|
||||
const Provider = require('react-redux').Provider
|
||||
const h = require('react-hyperscript')
|
||||
const App = require('./app')
|
||||
|
||||
module.exports = Root
|
||||
|
||||
inherits(Root, Component)
|
||||
function Root () { Component.call(this) }
|
||||
|
||||
Root.prototype.render = function () {
|
||||
console.log(123454)
|
||||
return (
|
||||
|
||||
h(Provider, {
|
||||
store: this.props.store,
|
||||
}, [
|
||||
h(App),
|
||||
])
|
||||
|
||||
)
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
const createStore = require('redux').createStore
|
||||
const applyMiddleware = require('redux').applyMiddleware
|
||||
const thunkMiddleware = require('redux-thunk').default
|
||||
const rootReducer = require('./reducers')
|
||||
const createLogger = require('redux-logger').createLogger
|
||||
|
||||
global.METAMASK_DEBUG = 'GULP_METAMASK_DEBUG'
|
||||
|
||||
module.exports = configureStore
|
||||
|
||||
const loggerMiddleware = createLogger({
|
||||
predicate: () => global.METAMASK_DEBUG,
|
||||
})
|
||||
|
||||
const middlewares = [thunkMiddleware, loggerMiddleware]
|
||||
|
||||
const createStoreWithMiddleware = applyMiddleware(...middlewares)(createStore)
|
||||
|
||||
function configureStore (initialState) {
|
||||
return createStoreWithMiddleware(rootReducer, initialState)
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>MetaMask</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- app content -->
|
||||
<div id="app-content"></div>
|
||||
<script src="./bundle.js" type="text/javascript" charset="utf-8"></script>
|
||||
|
||||
<!-- design reference -->
|
||||
<link rel="stylesheet" type="text/css" href="./app/css/debug.css">
|
||||
<div id="design-container">
|
||||
<img id="design-img" src="./design/metamask_wfs_jan_13.png">
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,58 +0,0 @@
|
||||
const render = require('react-dom').render
|
||||
const h = require('react-hyperscript')
|
||||
const Root = require('./app/root')
|
||||
const actions = require('./app/actions')
|
||||
const configureStore = require('./app/store')
|
||||
const txHelper = require('./lib/tx-helper')
|
||||
global.log = require('loglevel')
|
||||
|
||||
module.exports = launchMetamaskUi
|
||||
|
||||
|
||||
log.setLevel(global.METAMASK_DEBUG ? 'debug' : 'warn')
|
||||
|
||||
function launchMetamaskUi (opts, cb) {
|
||||
var accountManager = opts.accountManager
|
||||
actions._setBackgroundConnection(accountManager)
|
||||
// check if we are unlocked first
|
||||
accountManager.getState(function (err, metamaskState) {
|
||||
if (err) return cb(err)
|
||||
const store = startApp(metamaskState, accountManager, opts)
|
||||
cb(null, store)
|
||||
})
|
||||
}
|
||||
|
||||
function startApp (metamaskState, accountManager, opts) {
|
||||
// parse opts
|
||||
const store = configureStore({
|
||||
|
||||
// metamaskState represents the cross-tab state
|
||||
metamask: metamaskState,
|
||||
|
||||
// appState represents the current tab's popup state
|
||||
appState: {},
|
||||
|
||||
// Which blockchain we are using:
|
||||
networkVersion: opts.networkVersion,
|
||||
})
|
||||
|
||||
// if unconfirmed txs, start on txConf page
|
||||
const unapprovedTxsAll = txHelper(metamaskState.unapprovedTxs, metamaskState.unapprovedMsgs, metamaskState.unapprovedPersonalMsgs, metamaskState.unapprovedTypedMessages, metamaskState.network)
|
||||
if (unapprovedTxsAll.length > 0) {
|
||||
store.dispatch(actions.showConfTxPage())
|
||||
}
|
||||
|
||||
accountManager.on('update', function (metamaskState) {
|
||||
store.dispatch(actions.updateMetamaskState(metamaskState))
|
||||
})
|
||||
|
||||
// start app
|
||||
render(
|
||||
h(Root, {
|
||||
// inject initial state
|
||||
store: store,
|
||||
}
|
||||
), opts.container)
|
||||
|
||||
return store
|
||||
}
|
Loading…
Reference in New Issue
Block a user