mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-22 17:33:23 +01:00
Allow for adding recently used addresses to address book.
This commit is contained in:
parent
b296640f1b
commit
b34ee4daa1
@ -251,6 +251,7 @@ module.exports = class MetamaskController extends EventEmitter {
|
||||
const preferencesController = this.preferencesController
|
||||
const txManager = this.txManager
|
||||
const noticeController = this.noticeController
|
||||
const addressBookController = this.addressBookController
|
||||
|
||||
return {
|
||||
// etc
|
||||
@ -278,6 +279,9 @@ module.exports = class MetamaskController extends EventEmitter {
|
||||
setDefaultRpc: nodeify(this.setDefaultRpc).bind(this),
|
||||
setCustomRpc: nodeify(this.setCustomRpc).bind(this),
|
||||
|
||||
// AddressController
|
||||
setAddressBook: nodeify(addressBookController.setAddressBook).bind(addressBookController),
|
||||
|
||||
// KeyringController
|
||||
setLocked: nodeify(keyringController.setLocked).bind(keyringController),
|
||||
createNewVaultAndKeychain: nodeify(keyringController.createNewVaultAndKeychain).bind(keyringController),
|
||||
|
@ -75,6 +75,8 @@ var actions = {
|
||||
// account detail screen
|
||||
SHOW_SEND_PAGE: 'SHOW_SEND_PAGE',
|
||||
showSendPage: showSendPage,
|
||||
ADD_TO_ADDRESS_BOOK: 'ADD_TO_ADDRESS_BOOK',
|
||||
addToAddressBook: addToAddressBook,
|
||||
REQUEST_ACCOUNT_EXPORT: 'REQUEST_ACCOUNT_EXPORT',
|
||||
requestExportAccount: requestExportAccount,
|
||||
EXPORT_ACCOUNT: 'EXPORT_ACCOUNT',
|
||||
@ -696,6 +698,18 @@ function setRpcTarget (newRpc) {
|
||||
}
|
||||
}
|
||||
|
||||
function addToAddressBook (recipient, nickname) {
|
||||
log.debug(`background.addToAddressBook`)
|
||||
return (dispatch) => {
|
||||
background.setAddressBook(recipient, nickname, (err, result) => {
|
||||
if (err) {
|
||||
log.error(err)
|
||||
return dispatch(self.displayWarning('Address book failed to update'))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function setProviderType (type) {
|
||||
log.debug(`background.setProviderType`)
|
||||
background.setProviderType(type)
|
||||
|
@ -59,6 +59,12 @@ EnsInput.prototype.render = function () {
|
||||
label: identity.name,
|
||||
})
|
||||
}),
|
||||
props.addressBook.map((identity) => {
|
||||
return h('option', {
|
||||
value: identity.address,
|
||||
label: identity.name,
|
||||
})
|
||||
}),
|
||||
]),
|
||||
this.ensIcon(),
|
||||
])
|
||||
@ -94,11 +100,13 @@ EnsInput.prototype.lookupEnsName = function () {
|
||||
this.setState({
|
||||
loadingEns: false,
|
||||
ensResolution: address,
|
||||
nickname: recipient.trim(),
|
||||
hoverText: address + '\nClick to Copy',
|
||||
})
|
||||
}
|
||||
})
|
||||
.catch((reason) => {
|
||||
log.error(reason)
|
||||
return this.setState({
|
||||
loadingEns: false,
|
||||
ensFailure: true,
|
||||
@ -109,10 +117,11 @@ EnsInput.prototype.lookupEnsName = function () {
|
||||
|
||||
EnsInput.prototype.componentDidUpdate = function (prevProps, prevState) {
|
||||
const state = this.state || {}
|
||||
const { ensResolution } = state
|
||||
const ensResolution = state.ensResolution
|
||||
const nickname = state.nickname || ' '
|
||||
if (ensResolution && this.props.onChange &&
|
||||
ensResolution !== prevState.ensResolution) {
|
||||
this.props.onChange(ensResolution)
|
||||
this.props.onChange(ensResolution, nickname)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,7 @@ function mapStateToProps (state) {
|
||||
identities: state.metamask.identities,
|
||||
warning: state.appState.warning,
|
||||
network: state.metamask.network,
|
||||
addressBook: state.metamask.addressBook,
|
||||
}
|
||||
|
||||
result.error = result.warning && result.warning.split('.')[0]
|
||||
@ -45,6 +46,7 @@ SendTransactionScreen.prototype.render = function () {
|
||||
var identity = state.identity
|
||||
var network = state.network
|
||||
var identities = state.identities
|
||||
var addressBook = state.addressBook
|
||||
|
||||
return (
|
||||
|
||||
@ -155,6 +157,7 @@ SendTransactionScreen.prototype.render = function () {
|
||||
onChange: this.recipientDidChange.bind(this),
|
||||
network,
|
||||
identities,
|
||||
addressBook,
|
||||
}),
|
||||
]),
|
||||
|
||||
@ -224,13 +227,17 @@ SendTransactionScreen.prototype.back = function () {
|
||||
this.props.dispatch(actions.backToAccountDetail(address))
|
||||
}
|
||||
|
||||
SendTransactionScreen.prototype.recipientDidChange = function (recipient) {
|
||||
this.setState({ recipient })
|
||||
SendTransactionScreen.prototype.recipientDidChange = function (recipient, nickname) {
|
||||
this.setState({
|
||||
recipient: recipient,
|
||||
nickname: nickname,
|
||||
})
|
||||
}
|
||||
|
||||
SendTransactionScreen.prototype.onSubmit = function () {
|
||||
const state = this.state || {}
|
||||
const recipient = state.recipient || document.querySelector('input[name="address"]').value
|
||||
const nickname = state.nickname || ' '
|
||||
const input = document.querySelector('input[name="amount"]').value
|
||||
const value = util.normalizeEthStringToWei(input)
|
||||
const txData = document.querySelector('input[name="txData"]').value
|
||||
@ -259,6 +266,8 @@ SendTransactionScreen.prototype.onSubmit = function () {
|
||||
|
||||
this.props.dispatch(actions.hideWarning())
|
||||
|
||||
this.props.dispatch(actions.addToAddressBook(recipient, nickname))
|
||||
|
||||
var txParams = {
|
||||
from: this.props.address,
|
||||
value: '0x' + value.toString(16),
|
||||
|
Loading…
Reference in New Issue
Block a user