mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-22 17:33:23 +01:00
Configure BIP44 Keychain as default one
This commit is contained in:
parent
2690d1acfd
commit
6ec471c6dc
@ -11,8 +11,10 @@ const createId = require('web3-provider-engine/util/random-id')
|
||||
|
||||
// Keyrings:
|
||||
const SimpleKeyring = require('./keyrings/simple')
|
||||
const HdKeyring = require('./keyrings/hd')
|
||||
const keyringTypes = [
|
||||
SimpleKeyring,
|
||||
HdKeyring,
|
||||
]
|
||||
|
||||
module.exports = class KeyringController extends EventEmitter {
|
||||
@ -67,7 +69,12 @@ module.exports = class KeyringController extends EventEmitter {
|
||||
})
|
||||
.then((encryptedString) => {
|
||||
this.configManager.setVault(encryptedString)
|
||||
cb(null, this.getState())
|
||||
|
||||
// TEMPORARY SINGLE-KEYRING CONFIG:
|
||||
this.addNewKeyring('HD Key Tree', null, cb)
|
||||
|
||||
// NORMAL BEHAVIOR:
|
||||
// cb(null, this.getState())
|
||||
})
|
||||
.catch((err) => {
|
||||
cb(err)
|
||||
@ -97,25 +104,35 @@ module.exports = class KeyringController extends EventEmitter {
|
||||
}
|
||||
|
||||
addNewKeyring(type, opts, cb) {
|
||||
const i = this.getAccounts().length
|
||||
const Keyring = this.getKeyringClassForType(type)
|
||||
const keyring = new Keyring(opts)
|
||||
const accounts = keyring.addAccounts(1)
|
||||
|
||||
accounts.forEach((account) => {
|
||||
this.loadBalanceAndNickname(account, i)
|
||||
})
|
||||
|
||||
this.setupAccounts(accounts)
|
||||
this.keyrings.push(keyring)
|
||||
this.persistAllKeyrings()
|
||||
.then(() => {
|
||||
cb(this.getState())
|
||||
cb(null, this.getState())
|
||||
})
|
||||
.catch((reason) => {
|
||||
cb(reason)
|
||||
})
|
||||
}
|
||||
|
||||
addNewAccount(keyRingNum = 0, cb) {
|
||||
const ring = this.keyrings[keyRingNum]
|
||||
const accounts = ring.addAccounts(1)
|
||||
this.setupAccounts(accounts)
|
||||
cb(null, this.getState())
|
||||
}
|
||||
|
||||
setupAccounts(accounts) {
|
||||
const i = this.getAccounts().length
|
||||
accounts.forEach((account) => {
|
||||
this.loadBalanceAndNickname(account, i)
|
||||
})
|
||||
}
|
||||
|
||||
// Takes an account address and an iterator representing
|
||||
// the current number of named accounts.
|
||||
loadBalanceAndNickname(account, i) {
|
||||
|
@ -61,6 +61,7 @@ module.exports = class MetamaskController {
|
||||
// forward directly to keyringController
|
||||
createNewVault: keyringController.createNewVault.bind(keyringController),
|
||||
addNewKeyring: keyringController.addNewKeyring.bind(keyringController),
|
||||
addNewAccount: keyringController.addNewAccount.bind(keyringController),
|
||||
submitPassword: keyringController.submitPassword.bind(keyringController),
|
||||
setSelectedAddress: keyringController.setSelectedAddress.bind(keyringController),
|
||||
approveTransaction: keyringController.approveTransaction.bind(keyringController),
|
||||
|
@ -87,7 +87,7 @@ AccountsScreen.prototype.render = function () {
|
||||
h('div.footer.hover-white.pointer', {
|
||||
key: 'reveal-account-bar',
|
||||
onClick: () => {
|
||||
this.addNewKeyring()
|
||||
this.addNewAccount()
|
||||
},
|
||||
style: {
|
||||
display: 'flex',
|
||||
@ -146,8 +146,8 @@ AccountsScreen.prototype.onShowDetail = function (address, event) {
|
||||
this.props.dispatch(actions.showAccountDetail(address))
|
||||
}
|
||||
|
||||
AccountsScreen.prototype.addNewKeyring = function () {
|
||||
this.props.dispatch(actions.addNewKeyring('Simple Key Pair'))
|
||||
AccountsScreen.prototype.addNewAccount = function () {
|
||||
this.props.dispatch(actions.addNewAccount(0))
|
||||
}
|
||||
|
||||
AccountsScreen.prototype.goHome = function () {
|
||||
|
@ -25,7 +25,8 @@ var actions = {
|
||||
showInitializeMenu: showInitializeMenu,
|
||||
createNewVault: createNewVault,
|
||||
createNewVaultInProgress: createNewVaultInProgress,
|
||||
addNewKeyring: addNewKeyring,
|
||||
addNewKeyring,
|
||||
addNewAccount,
|
||||
showNewVaultSeed: showNewVaultSeed,
|
||||
showInfoPage: showInfoPage,
|
||||
// unlock screen
|
||||
@ -178,6 +179,7 @@ function createNewVault (password, entropy) {
|
||||
if (err) {
|
||||
return dispatch(actions.showWarning(err.message))
|
||||
}
|
||||
|
||||
dispatch(this.updateMetamaskState(newState))
|
||||
dispatch(this.showAccountsPage())
|
||||
dispatch(this.hideLoadingIndication())
|
||||
@ -199,6 +201,19 @@ function addNewKeyring (type, opts) {
|
||||
}
|
||||
}
|
||||
|
||||
function addNewAccount (ringNumber = 0) {
|
||||
return (dispatch) => {
|
||||
dispatch(actions.showLoadingIndication())
|
||||
background.addNewAccount(ringNumber, (err, newState) => {
|
||||
dispatch(this.hideLoadingIndication())
|
||||
if (err) {
|
||||
return dispatch(actions.showWarning(err))
|
||||
}
|
||||
dispatch(this.updateMetamaskState(newState))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function showInfoPage () {
|
||||
return {
|
||||
type: actions.SHOW_INFO_PAGE,
|
||||
|
Loading…
Reference in New Issue
Block a user