mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-30 08:09:15 +01:00
80e4a1fef4
Fix e2e test Update siteicon for v4 signature type Code refactor Code refactor Remove origin and address in signatrue request Update e2e tests Use getNetworkName function Move header component inline jsx Update snaps
124 lines
3.5 KiB
JavaScript
124 lines
3.5 KiB
JavaScript
import { connect } from 'react-redux';
|
|
import { compose } from 'redux';
|
|
import { withRouter } from 'react-router-dom';
|
|
|
|
import { MESSAGE_TYPE } from '../../../../shared/constants/app';
|
|
import { goHome, cancelMsgs, showModal } from '../../../store/actions';
|
|
import {
|
|
accountsWithSendEtherInfoSelector,
|
|
conversionRateSelector,
|
|
getSubjectMetadata,
|
|
doesAddressRequireLedgerHidConnection,
|
|
unconfirmedMessagesHashSelector,
|
|
getTotalUnapprovedMessagesCount,
|
|
} from '../../../selectors';
|
|
import { getAccountByAddress, valuesFor } from '../../../helpers/utils/util';
|
|
import { clearConfirmTransaction } from '../../../ducks/confirm-transaction/confirm-transaction.duck';
|
|
import { getMostRecentOverviewPage } from '../../../ducks/history/history';
|
|
import {
|
|
isAddressLedger,
|
|
getNativeCurrency,
|
|
} from '../../../ducks/metamask/metamask';
|
|
import SignatureRequestOriginal from './signature-request-original.component';
|
|
|
|
function mapStateToProps(state, ownProps) {
|
|
const {
|
|
msgParams: { from },
|
|
} = ownProps.txData;
|
|
const { provider } = state.metamask;
|
|
|
|
const hardwareWalletRequiresConnection =
|
|
doesAddressRequireLedgerHidConnection(state, from);
|
|
const isLedgerWallet = isAddressLedger(state, from);
|
|
const messagesList = unconfirmedMessagesHashSelector(state);
|
|
const messagesCount = getTotalUnapprovedMessagesCount(state);
|
|
return {
|
|
requester: null,
|
|
requesterAddress: null,
|
|
conversionRate: conversionRateSelector(state),
|
|
mostRecentOverviewPage: getMostRecentOverviewPage(state),
|
|
hardwareWalletRequiresConnection,
|
|
isLedgerWallet,
|
|
nativeCurrency: getNativeCurrency(state),
|
|
// not passed to component
|
|
allAccounts: accountsWithSendEtherInfoSelector(state),
|
|
subjectMetadata: getSubjectMetadata(state),
|
|
messagesList,
|
|
messagesCount,
|
|
provider,
|
|
};
|
|
}
|
|
|
|
function mapDispatchToProps(dispatch) {
|
|
return {
|
|
goHome: () => dispatch(goHome()),
|
|
clearConfirmTransaction: () => dispatch(clearConfirmTransaction()),
|
|
showRejectTransactionsConfirmationModal: ({
|
|
onSubmit,
|
|
unapprovedTxCount: messagesCount,
|
|
}) => {
|
|
return dispatch(
|
|
showModal({
|
|
name: 'REJECT_TRANSACTIONS',
|
|
onSubmit,
|
|
unapprovedTxCount: messagesCount,
|
|
isRequestType: true,
|
|
}),
|
|
);
|
|
},
|
|
cancelAll: (messagesList) => dispatch(cancelMsgs(messagesList)),
|
|
};
|
|
}
|
|
|
|
function mergeProps(stateProps, dispatchProps, ownProps) {
|
|
const {
|
|
signPersonalMessage,
|
|
signTypedMessage,
|
|
cancelPersonalMessage,
|
|
cancelTypedMessage,
|
|
signMessage,
|
|
cancelMessage,
|
|
txData,
|
|
} = ownProps;
|
|
|
|
const { allAccounts, messagesList, ...otherStateProps } = stateProps;
|
|
|
|
const {
|
|
type,
|
|
msgParams: { from },
|
|
} = txData;
|
|
|
|
const fromAccount = getAccountByAddress(allAccounts, from);
|
|
|
|
const { cancelAll: dispatchCancelAll } = dispatchProps;
|
|
|
|
let cancel;
|
|
let sign;
|
|
if (type === MESSAGE_TYPE.PERSONAL_SIGN) {
|
|
cancel = cancelPersonalMessage;
|
|
sign = signPersonalMessage;
|
|
} else if (type === MESSAGE_TYPE.ETH_SIGN_TYPED_DATA) {
|
|
cancel = cancelTypedMessage;
|
|
sign = signTypedMessage;
|
|
} else if (type === MESSAGE_TYPE.ETH_SIGN) {
|
|
cancel = cancelMessage;
|
|
sign = signMessage;
|
|
}
|
|
|
|
return {
|
|
...ownProps,
|
|
...otherStateProps,
|
|
...dispatchProps,
|
|
fromAccount,
|
|
txData,
|
|
cancel,
|
|
sign,
|
|
cancelAll: () => dispatchCancelAll(valuesFor(messagesList)),
|
|
};
|
|
}
|
|
|
|
export default compose(
|
|
withRouter,
|
|
connect(mapStateToProps, mapDispatchToProps, mergeProps),
|
|
)(SignatureRequestOriginal);
|