1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-25 12:52:33 +02:00
metamask-extension/ui/app/pages/confirm-decrypt-message/confirm-decrypt-message.container.js
Konstantin 6f47fece56
Implementation encrypt/decrypt feature (#7831)
Implement `eth_decrypt` and `eth_getEncryptionPublicKey`. This allows decryption backed by the user's private key. The message decryption uses a confirmation flow similar to the messaging signing flow, where the message to be decrypted is also able to be decrypted inline for the user to read directly before confirming.
2020-02-19 14:24:16 -04:00

63 lines
1.8 KiB
JavaScript

import { connect } from 'react-redux'
import { compose } from 'recompose'
import { withRouter } from 'react-router-dom'
import { goHome, decryptMsg, cancelDecryptMsg, decryptMsgInline } from '../../store/actions'
import {
getSelectedAccount,
getCurrentAccountWithSendEtherInfo,
getSelectedAddress,
conversionRateSelector,
} from '../../selectors/selectors.js'
import { clearConfirmTransaction } from '../../ducks/confirm-transaction/confirm-transaction.duck'
import ConfirmDecryptMessage from './confirm-decrypt-message.component'
function mapStateToProps (state) {
const { confirmTransaction,
metamask: { domainMetadata = {} },
} = state
const {
txData = {},
} = confirmTransaction
return {
txData: txData,
domainMetadata: domainMetadata,
balance: getSelectedAccount(state).balance,
selectedAccount: getCurrentAccountWithSendEtherInfo(state),
selectedAddress: getSelectedAddress(state),
requester: null,
requesterAddress: null,
conversionRate: conversionRateSelector(state),
}
}
function mapDispatchToProps (dispatch) {
return {
goHome: () => dispatch(goHome()),
clearConfirmTransaction: () => dispatch(clearConfirmTransaction()),
decryptMessage: (msgData, event) => {
const params = msgData.msgParams
params.metamaskId = msgData.id
event.stopPropagation(event)
return dispatch(decryptMsg(params))
},
cancelDecryptMessage: (msgData, event) => {
event.stopPropagation(event)
return dispatch(cancelDecryptMsg(msgData))
},
decryptMessageInline: (msgData, event) => {
const params = msgData.msgParams
params.metamaskId = msgData.id
event.stopPropagation(event)
return dispatch(decryptMsgInline(params))
},
}
}
export default compose(
withRouter,
connect(mapStateToProps, mapDispatchToProps)
)(ConfirmDecryptMessage)