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:
|
// Keyrings:
|
||||||
const SimpleKeyring = require('./keyrings/simple')
|
const SimpleKeyring = require('./keyrings/simple')
|
||||||
|
const HdKeyring = require('./keyrings/hd')
|
||||||
const keyringTypes = [
|
const keyringTypes = [
|
||||||
SimpleKeyring,
|
SimpleKeyring,
|
||||||
|
HdKeyring,
|
||||||
]
|
]
|
||||||
|
|
||||||
module.exports = class KeyringController extends EventEmitter {
|
module.exports = class KeyringController extends EventEmitter {
|
||||||
@ -67,7 +69,12 @@ module.exports = class KeyringController extends EventEmitter {
|
|||||||
})
|
})
|
||||||
.then((encryptedString) => {
|
.then((encryptedString) => {
|
||||||
this.configManager.setVault(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) => {
|
.catch((err) => {
|
||||||
cb(err)
|
cb(err)
|
||||||
@ -97,25 +104,35 @@ module.exports = class KeyringController extends EventEmitter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addNewKeyring(type, opts, cb) {
|
addNewKeyring(type, opts, cb) {
|
||||||
const i = this.getAccounts().length
|
|
||||||
const Keyring = this.getKeyringClassForType(type)
|
const Keyring = this.getKeyringClassForType(type)
|
||||||
const keyring = new Keyring(opts)
|
const keyring = new Keyring(opts)
|
||||||
const accounts = keyring.addAccounts(1)
|
const accounts = keyring.addAccounts(1)
|
||||||
|
|
||||||
accounts.forEach((account) => {
|
this.setupAccounts(accounts)
|
||||||
this.loadBalanceAndNickname(account, i)
|
|
||||||
})
|
|
||||||
|
|
||||||
this.keyrings.push(keyring)
|
this.keyrings.push(keyring)
|
||||||
this.persistAllKeyrings()
|
this.persistAllKeyrings()
|
||||||
.then(() => {
|
.then(() => {
|
||||||
cb(this.getState())
|
cb(null, this.getState())
|
||||||
})
|
})
|
||||||
.catch((reason) => {
|
.catch((reason) => {
|
||||||
cb(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
|
// Takes an account address and an iterator representing
|
||||||
// the current number of named accounts.
|
// the current number of named accounts.
|
||||||
loadBalanceAndNickname(account, i) {
|
loadBalanceAndNickname(account, i) {
|
||||||
|
@ -61,6 +61,7 @@ module.exports = class MetamaskController {
|
|||||||
// forward directly to keyringController
|
// forward directly to keyringController
|
||||||
createNewVault: keyringController.createNewVault.bind(keyringController),
|
createNewVault: keyringController.createNewVault.bind(keyringController),
|
||||||
addNewKeyring: keyringController.addNewKeyring.bind(keyringController),
|
addNewKeyring: keyringController.addNewKeyring.bind(keyringController),
|
||||||
|
addNewAccount: keyringController.addNewAccount.bind(keyringController),
|
||||||
submitPassword: keyringController.submitPassword.bind(keyringController),
|
submitPassword: keyringController.submitPassword.bind(keyringController),
|
||||||
setSelectedAddress: keyringController.setSelectedAddress.bind(keyringController),
|
setSelectedAddress: keyringController.setSelectedAddress.bind(keyringController),
|
||||||
approveTransaction: keyringController.approveTransaction.bind(keyringController),
|
approveTransaction: keyringController.approveTransaction.bind(keyringController),
|
||||||
|
@ -87,7 +87,7 @@ AccountsScreen.prototype.render = function () {
|
|||||||
h('div.footer.hover-white.pointer', {
|
h('div.footer.hover-white.pointer', {
|
||||||
key: 'reveal-account-bar',
|
key: 'reveal-account-bar',
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
this.addNewKeyring()
|
this.addNewAccount()
|
||||||
},
|
},
|
||||||
style: {
|
style: {
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
@ -146,8 +146,8 @@ AccountsScreen.prototype.onShowDetail = function (address, event) {
|
|||||||
this.props.dispatch(actions.showAccountDetail(address))
|
this.props.dispatch(actions.showAccountDetail(address))
|
||||||
}
|
}
|
||||||
|
|
||||||
AccountsScreen.prototype.addNewKeyring = function () {
|
AccountsScreen.prototype.addNewAccount = function () {
|
||||||
this.props.dispatch(actions.addNewKeyring('Simple Key Pair'))
|
this.props.dispatch(actions.addNewAccount(0))
|
||||||
}
|
}
|
||||||
|
|
||||||
AccountsScreen.prototype.goHome = function () {
|
AccountsScreen.prototype.goHome = function () {
|
||||||
|
@ -25,7 +25,8 @@ var actions = {
|
|||||||
showInitializeMenu: showInitializeMenu,
|
showInitializeMenu: showInitializeMenu,
|
||||||
createNewVault: createNewVault,
|
createNewVault: createNewVault,
|
||||||
createNewVaultInProgress: createNewVaultInProgress,
|
createNewVaultInProgress: createNewVaultInProgress,
|
||||||
addNewKeyring: addNewKeyring,
|
addNewKeyring,
|
||||||
|
addNewAccount,
|
||||||
showNewVaultSeed: showNewVaultSeed,
|
showNewVaultSeed: showNewVaultSeed,
|
||||||
showInfoPage: showInfoPage,
|
showInfoPage: showInfoPage,
|
||||||
// unlock screen
|
// unlock screen
|
||||||
@ -178,6 +179,7 @@ function createNewVault (password, entropy) {
|
|||||||
if (err) {
|
if (err) {
|
||||||
return dispatch(actions.showWarning(err.message))
|
return dispatch(actions.showWarning(err.message))
|
||||||
}
|
}
|
||||||
|
|
||||||
dispatch(this.updateMetamaskState(newState))
|
dispatch(this.updateMetamaskState(newState))
|
||||||
dispatch(this.showAccountsPage())
|
dispatch(this.showAccountsPage())
|
||||||
dispatch(this.hideLoadingIndication())
|
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 () {
|
function showInfoPage () {
|
||||||
return {
|
return {
|
||||||
type: actions.SHOW_INFO_PAGE,
|
type: actions.SHOW_INFO_PAGE,
|
||||||
|
Loading…
Reference in New Issue
Block a user