mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-12 12:47:14 +01:00
9d70c60c22
* Connect ledger via webhid if that option is available * Explicitly setting preference for webhid * Use ledgerTransportType enum instead of booleans for ledger live and webhid preferences * Use single setLEdgerTransport preference methods and property * Temp * Lint fix * Unit test fix * Remove async keyword from setLedgerTransportPreference function definition in preferences controller * Fix ledgelive setting toggle logic * Migrate useLedgerLive preference property to ledgerTransportType * Use shared constants for ledger transport type enums * Use constant for ledger usb vendor id * Use correct property to check if ledgerLive preference is set when deciding whether to ask for webhid connection * Update eth-ledger-bridge-keyring to v0.9.0 * Only show ledger live transaction helper messages if using ledger live * Only show ledger live part of tutorial if ledger live setting is on * Fix ledger related prop type errors * Explicitly use u2f enum instead of empty string as a transport type; default transport type to webhid if available; use constants for u2f and webhid * Cleanup * Wrap ledger webhid device request in try/catch * Clean up * Lint fix * Ensure user can easily connect their ledger wallet when they need to. * Fix locales * Fix/improve locales changes * Remove unused isFirefox property from confirm-transaction-base.container.js * Disable transaction and message signing confirmation if ledger webhid requires connection * Ensure translation keys for ledger connection options in settings dropdown can be properly detected by verify-locales * Drop .component from ledger-instruction-field file name * Move renderLedgerLiveStep to module scope * Remove ledgerLive from function and message names in ledger-instruction-field * Wrap ledger connection logic in ledger-instruction-field in try catch * Clean up signature-request.component.js * Check whether the signing address, and not the selected address, is a ledger account in singature-request.container * Ensure ledger instructions and webhid connection button are shown on signature-request-original signatures * Improve webhid selection handling in select-ledger-transport-type onChange handler * Move metamask redux focused ledger selectors to metamask duck * Lint fix * Use async await in checkWebHidStatusRef.current * Remove unnecessary use of ref in ledger-instruction-field.js * Lint fix * Remove unnecessary try/catch in ledger-instruction-field.js * Check if from address, not selected address, is from a ledger account in confirm-approve * Move findKeyringForAddress to metamask duck * Fix typo in function name * Ensure isEqualCaseInsensitive handles possible differences in address casing * Fix Learn More link size in advanced settings tab * Update app/scripts/migrations/066.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Update ui/pages/settings/advanced-tab/advanced-tab.component.test.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Add jsdoc comments for new selectors * Use jest.spyOn for mocking navigator in ledger webhid migration tests * Use LEDGER_TRANSPORT_TYPES values to set proptype of ledgerTransportType * Use LEDGER_TRANSPORT_TYPES values to set proptype of ledgerTransportType * Fix font size of link in ledger connection description in advanced settings * Fix return type in setLedgerTransportPreference comment * Clean up connectHardware code for webhid connection in actions.js * Update app/scripts/migrations/066.test.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Update ui/ducks/metamask/metamask.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Add migration test for when useLedgerLive is true in a browser that supports webhid * Lint fix * Fix inline-link size Co-authored-by: Mark Stacey <markjstacey@gmail.com>
94 lines
2.8 KiB
JavaScript
94 lines
2.8 KiB
JavaScript
import { compose } from 'redux';
|
|
import { connect } from 'react-redux';
|
|
import { withRouter } from 'react-router-dom';
|
|
import {
|
|
displayWarning,
|
|
setFeatureFlag,
|
|
showModal,
|
|
setShowFiatConversionOnTestnetsPreference,
|
|
setAutoLockTimeLimit,
|
|
setThreeBoxSyncingPermission,
|
|
turnThreeBoxSyncingOnAndInitialize,
|
|
setUseNonceField,
|
|
setIpfsGateway,
|
|
setLedgerLivePreference,
|
|
setDismissSeedBackUpReminder,
|
|
} from '../../../store/actions';
|
|
import { getPreferences } from '../../../selectors';
|
|
import { doesUserHaveALedgerAccount } from '../../../ducks/metamask/metamask';
|
|
import AdvancedTab from './advanced-tab.component';
|
|
|
|
export const mapStateToProps = (state) => {
|
|
const {
|
|
appState: { warning },
|
|
metamask,
|
|
} = state;
|
|
const {
|
|
featureFlags: { sendHexData, advancedInlineGas } = {},
|
|
threeBoxSyncingAllowed,
|
|
threeBoxDisabled,
|
|
useNonceField,
|
|
ipfsGateway,
|
|
ledgerTransportType,
|
|
dismissSeedBackUpReminder,
|
|
} = metamask;
|
|
const { showFiatInTestnets, autoLockTimeLimit } = getPreferences(state);
|
|
|
|
const userHasALedgerAccount = doesUserHaveALedgerAccount(state);
|
|
|
|
return {
|
|
warning,
|
|
sendHexData,
|
|
advancedInlineGas,
|
|
showFiatInTestnets,
|
|
autoLockTimeLimit,
|
|
threeBoxSyncingAllowed,
|
|
threeBoxDisabled,
|
|
useNonceField,
|
|
ipfsGateway,
|
|
ledgerTransportType,
|
|
dismissSeedBackUpReminder,
|
|
userHasALedgerAccount,
|
|
};
|
|
};
|
|
|
|
export const mapDispatchToProps = (dispatch) => {
|
|
return {
|
|
setHexDataFeatureFlag: (shouldShow) =>
|
|
dispatch(setFeatureFlag('sendHexData', shouldShow)),
|
|
displayWarning: (warning) => dispatch(displayWarning(warning)),
|
|
showResetAccountConfirmationModal: () =>
|
|
dispatch(showModal({ name: 'CONFIRM_RESET_ACCOUNT' })),
|
|
setAdvancedInlineGasFeatureFlag: (shouldShow) =>
|
|
dispatch(setFeatureFlag('advancedInlineGas', shouldShow)),
|
|
setUseNonceField: (value) => dispatch(setUseNonceField(value)),
|
|
setShowFiatConversionOnTestnetsPreference: (value) => {
|
|
return dispatch(setShowFiatConversionOnTestnetsPreference(value));
|
|
},
|
|
setAutoLockTimeLimit: (value) => {
|
|
return dispatch(setAutoLockTimeLimit(value));
|
|
},
|
|
setThreeBoxSyncingPermission: (newThreeBoxSyncingState) => {
|
|
if (newThreeBoxSyncingState) {
|
|
dispatch(turnThreeBoxSyncingOnAndInitialize());
|
|
} else {
|
|
dispatch(setThreeBoxSyncingPermission(newThreeBoxSyncingState));
|
|
}
|
|
},
|
|
setIpfsGateway: (value) => {
|
|
return dispatch(setIpfsGateway(value));
|
|
},
|
|
setLedgerLivePreference: (value) => {
|
|
return dispatch(setLedgerLivePreference(value));
|
|
},
|
|
setDismissSeedBackUpReminder: (value) => {
|
|
return dispatch(setDismissSeedBackUpReminder(value));
|
|
},
|
|
};
|
|
};
|
|
|
|
export default compose(
|
|
withRouter,
|
|
connect(mapStateToProps, mapDispatchToProps),
|
|
)(AdvancedTab);
|