mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-10-22 11:22:43 +02:00
Move subject type enum to @metamask/subject-metadata-controller
(#16431)
* Move subject type enum to @metamask/controllers * Fix imports
This commit is contained in:
parent
3ff12d70e9
commit
2900fe2c1a
@ -46,7 +46,10 @@ import {
|
|||||||
PermissionController,
|
PermissionController,
|
||||||
PermissionsRequestNotFoundError,
|
PermissionsRequestNotFoundError,
|
||||||
} from '@metamask/permission-controller';
|
} from '@metamask/permission-controller';
|
||||||
import { SubjectMetadataController } from '@metamask/subject-metadata-controller';
|
import {
|
||||||
|
SubjectMetadataController,
|
||||||
|
SubjectType,
|
||||||
|
} from '@metamask/subject-metadata-controller';
|
||||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||||
import { RateLimitController } from '@metamask/rate-limit-controller';
|
import { RateLimitController } from '@metamask/rate-limit-controller';
|
||||||
import { NotificationController } from '@metamask/notification-controller';
|
import { NotificationController } from '@metamask/notification-controller';
|
||||||
@ -97,7 +100,6 @@ import {
|
|||||||
SNAP_DIALOG_TYPES,
|
SNAP_DIALOG_TYPES,
|
||||||
///: END:ONLY_INCLUDE_IN
|
///: END:ONLY_INCLUDE_IN
|
||||||
POLLING_TOKEN_ENVIRONMENT_TYPES,
|
POLLING_TOKEN_ENVIRONMENT_TYPES,
|
||||||
SUBJECT_TYPES,
|
|
||||||
} from '../../shared/constants/app';
|
} from '../../shared/constants/app';
|
||||||
import { EVENT, EVENT_NAMES } from '../../shared/constants/metametrics';
|
import { EVENT, EVENT_NAMES } from '../../shared/constants/metametrics';
|
||||||
|
|
||||||
@ -1494,7 +1496,7 @@ export default class MetamaskController extends EventEmitter {
|
|||||||
version,
|
version,
|
||||||
} = snap;
|
} = snap;
|
||||||
this.subjectMetadataController.addSubjectMetadata({
|
this.subjectMetadataController.addSubjectMetadata({
|
||||||
subjectType: SUBJECT_TYPES.SNAP,
|
subjectType: SubjectType.Snap,
|
||||||
name: proposedName,
|
name: proposedName,
|
||||||
origin: snap.id,
|
origin: snap.id,
|
||||||
version,
|
version,
|
||||||
@ -3541,9 +3543,9 @@ export default class MetamaskController extends EventEmitter {
|
|||||||
if (subjectType) {
|
if (subjectType) {
|
||||||
_subjectType = subjectType;
|
_subjectType = subjectType;
|
||||||
} else if (sender.id && sender.id !== this.extension.runtime.id) {
|
} else if (sender.id && sender.id !== this.extension.runtime.id) {
|
||||||
_subjectType = SUBJECT_TYPES.EXTENSION;
|
_subjectType = SubjectType.Extension;
|
||||||
} else {
|
} else {
|
||||||
_subjectType = SUBJECT_TYPES.WEBSITE;
|
_subjectType = SubjectType.Website;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sender.url) {
|
if (sender.url) {
|
||||||
@ -3595,7 +3597,7 @@ export default class MetamaskController extends EventEmitter {
|
|||||||
this.setupProviderConnection(
|
this.setupProviderConnection(
|
||||||
mux.createStream('provider'),
|
mux.createStream('provider'),
|
||||||
sender,
|
sender,
|
||||||
SUBJECT_TYPES.INTERNAL,
|
SubjectType.Internal,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3711,15 +3713,15 @@ export default class MetamaskController extends EventEmitter {
|
|||||||
*
|
*
|
||||||
* @param {*} outStream - The stream to provide over.
|
* @param {*} outStream - The stream to provide over.
|
||||||
* @param {MessageSender | SnapSender} sender - The sender of the messages on this stream
|
* @param {MessageSender | SnapSender} sender - The sender of the messages on this stream
|
||||||
* @param {string} subjectType - The type of the sender, i.e. subject.
|
* @param {SubjectType} subjectType - The type of the sender, i.e. subject.
|
||||||
*/
|
*/
|
||||||
setupProviderConnection(outStream, sender, subjectType) {
|
setupProviderConnection(outStream, sender, subjectType) {
|
||||||
let origin;
|
let origin;
|
||||||
if (subjectType === SUBJECT_TYPES.INTERNAL) {
|
if (subjectType === SubjectType.Internal) {
|
||||||
origin = ORIGIN_METAMASK;
|
origin = ORIGIN_METAMASK;
|
||||||
}
|
}
|
||||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||||
else if (subjectType === SUBJECT_TYPES.SNAP) {
|
else if (subjectType === SubjectType.Snap) {
|
||||||
origin = sender.snapId;
|
origin = sender.snapId;
|
||||||
}
|
}
|
||||||
///: END:ONLY_INCLUDE_IN
|
///: END:ONLY_INCLUDE_IN
|
||||||
@ -3731,7 +3733,7 @@ export default class MetamaskController extends EventEmitter {
|
|||||||
this.subjectMetadataController.addSubjectMetadata({
|
this.subjectMetadataController.addSubjectMetadata({
|
||||||
origin,
|
origin,
|
||||||
extensionId: sender.id,
|
extensionId: sender.id,
|
||||||
subjectType: SUBJECT_TYPES.EXTENSION,
|
subjectType: SubjectType.Extension,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3777,7 +3779,7 @@ export default class MetamaskController extends EventEmitter {
|
|||||||
this.setupUntrustedCommunication({
|
this.setupUntrustedCommunication({
|
||||||
connectionStream,
|
connectionStream,
|
||||||
sender: { snapId },
|
sender: { snapId },
|
||||||
subjectType: SUBJECT_TYPES.SNAP,
|
subjectType: SubjectType.Snap,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
///: END:ONLY_INCLUDE_IN
|
///: END:ONLY_INCLUDE_IN
|
||||||
@ -3834,7 +3836,7 @@ export default class MetamaskController extends EventEmitter {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// onboarding
|
// onboarding
|
||||||
if (subjectType === SUBJECT_TYPES.WEBSITE) {
|
if (subjectType === SubjectType.Website) {
|
||||||
engine.push(
|
engine.push(
|
||||||
createOnboardingMiddleware({
|
createOnboardingMiddleware({
|
||||||
location: sender.url,
|
location: sender.url,
|
||||||
@ -3942,7 +3944,7 @@ export default class MetamaskController extends EventEmitter {
|
|||||||
|
|
||||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||||
engine.push(
|
engine.push(
|
||||||
createSnapMethodMiddleware(subjectType === SUBJECT_TYPES.SNAP, {
|
createSnapMethodMiddleware(subjectType === SubjectType.Snap, {
|
||||||
getAppKey: this.getAppKeyForSubject.bind(this, origin),
|
getAppKey: this.getAppKeyForSubject.bind(this, origin),
|
||||||
getUnlockPromise: this.appStateController.getUnlockPromise.bind(
|
getUnlockPromise: this.appStateController.getUnlockPromise.bind(
|
||||||
this.appStateController,
|
this.appStateController,
|
||||||
@ -3975,7 +3977,7 @@ export default class MetamaskController extends EventEmitter {
|
|||||||
);
|
);
|
||||||
///: END:ONLY_INCLUDE_IN
|
///: END:ONLY_INCLUDE_IN
|
||||||
|
|
||||||
if (subjectType !== SUBJECT_TYPES.INTERNAL) {
|
if (subjectType !== SubjectType.Internal) {
|
||||||
// permissions
|
// permissions
|
||||||
engine.push(
|
engine.push(
|
||||||
this.permissionController.createPermissionMiddleware({
|
this.permissionController.createPermissionMiddleware({
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
import { SubjectType } from '@metamask/subject-metadata-controller';
|
||||||
import { cloneDeep } from 'lodash';
|
import { cloneDeep } from 'lodash';
|
||||||
import { SUBJECT_TYPES } from '../../../shared/constants/app';
|
|
||||||
|
|
||||||
const version = 69;
|
const version = 69;
|
||||||
|
|
||||||
@ -32,8 +32,8 @@ function transformState(state) {
|
|||||||
!Array.isArray(metadata)
|
!Array.isArray(metadata)
|
||||||
) {
|
) {
|
||||||
metadata.subjectType = metadata.extensionId
|
metadata.subjectType = metadata.extensionId
|
||||||
? SUBJECT_TYPES.EXTENSION
|
? SubjectType.Extension
|
||||||
: SUBJECT_TYPES.WEBSITE;
|
: SubjectType.Website;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { SUBJECT_TYPES } from '../../../shared/constants/app';
|
import { SubjectType } from '@metamask/subject-metadata-controller';
|
||||||
import migration69 from './069';
|
import migration69 from './069';
|
||||||
|
|
||||||
describe('migration #69', () => {
|
describe('migration #69', () => {
|
||||||
@ -61,14 +61,14 @@ describe('migration #69', () => {
|
|||||||
name: 'DEX Aggregator - 1inch.exchange',
|
name: 'DEX Aggregator - 1inch.exchange',
|
||||||
origin: 'https://1inch.exchange',
|
origin: 'https://1inch.exchange',
|
||||||
extensionId: null,
|
extensionId: null,
|
||||||
subjectType: SUBJECT_TYPES.WEBSITE,
|
subjectType: SubjectType.Website,
|
||||||
},
|
},
|
||||||
'https://ascii-tree-generator.com': {
|
'https://ascii-tree-generator.com': {
|
||||||
iconUrl: 'https://ascii-tree-generator.com/favicon.ico',
|
iconUrl: 'https://ascii-tree-generator.com/favicon.ico',
|
||||||
name: 'ASCII Tree Generator',
|
name: 'ASCII Tree Generator',
|
||||||
origin: 'https://ascii-tree-generator.com',
|
origin: 'https://ascii-tree-generator.com',
|
||||||
extensionId: 'ascii-tree-generator-extension',
|
extensionId: 'ascii-tree-generator-extension',
|
||||||
subjectType: SUBJECT_TYPES.EXTENSION,
|
subjectType: SubjectType.Extension,
|
||||||
},
|
},
|
||||||
'https://null.com': null,
|
'https://null.com': null,
|
||||||
'https://foo.com': 'bad data',
|
'https://foo.com': 'bad data',
|
||||||
|
@ -78,20 +78,6 @@ export const EXTENSION_MESSAGES = {
|
|||||||
READY: 'METAMASK_EXTENSION_READY',
|
READY: 'METAMASK_EXTENSION_READY',
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
/**
|
|
||||||
* The different kinds of subjects that MetaMask may interact with, including
|
|
||||||
* third parties and itself (e.g. when the background communicated with the UI).
|
|
||||||
*/
|
|
||||||
export const SUBJECT_TYPES = {
|
|
||||||
EXTENSION: 'extension',
|
|
||||||
INTERNAL: 'internal',
|
|
||||||
UNKNOWN: 'unknown',
|
|
||||||
WEBSITE: 'website',
|
|
||||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
|
||||||
SNAP: 'snap',
|
|
||||||
///: END:ONLY_INCLUDE_IN
|
|
||||||
} as const;
|
|
||||||
|
|
||||||
export const POLLING_TOKEN_ENVIRONMENT_TYPES = {
|
export const POLLING_TOKEN_ENVIRONMENT_TYPES = {
|
||||||
[ENVIRONMENT_TYPE_POPUP]: 'popupGasPollTokens',
|
[ENVIRONMENT_TYPE_POPUP]: 'popupGasPollTokens',
|
||||||
[ENVIRONMENT_TYPE_NOTIFICATION]: 'notificationGasPollTokens',
|
[ENVIRONMENT_TYPE_NOTIFICATION]: 'notificationGasPollTokens',
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
import { SubjectType } from '@metamask/subject-metadata-controller';
|
||||||
import { useSelector } from 'react-redux';
|
import { useSelector } from 'react-redux';
|
||||||
import { getTargetSubjectMetadata } from '../selectors';
|
import { getTargetSubjectMetadata } from '../selectors';
|
||||||
import { SUBJECT_TYPES } from '../../shared/constants/app';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {object} OriginMetadata
|
* @typedef {object} OriginMetadata
|
||||||
@ -34,7 +34,7 @@ export function useOriginMetadata(origin) {
|
|||||||
host: url.host,
|
host: url.host,
|
||||||
hostname: url.hostname,
|
hostname: url.hostname,
|
||||||
origin,
|
origin,
|
||||||
subjectType: SUBJECT_TYPES.UNKNOWN,
|
subjectType: SubjectType.Unknown,
|
||||||
};
|
};
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
// do nothing
|
// do nothing
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { SubjectType } from '@metamask/subject-metadata-controller';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import {
|
import {
|
||||||
@ -32,7 +33,6 @@ import {
|
|||||||
CONNECT_SNAP_UPDATE_ROUTE,
|
CONNECT_SNAP_UPDATE_ROUTE,
|
||||||
///: END:ONLY_INCLUDE_IN
|
///: END:ONLY_INCLUDE_IN
|
||||||
} from '../../helpers/constants/routes';
|
} from '../../helpers/constants/routes';
|
||||||
import { SUBJECT_TYPES } from '../../../shared/constants/app';
|
|
||||||
import PermissionApproval from './permissions-connect.component';
|
import PermissionApproval from './permissions-connect.component';
|
||||||
|
|
||||||
const mapStateToProps = (state, ownProps) => {
|
const mapStateToProps = (state, ownProps) => {
|
||||||
@ -68,11 +68,11 @@ const mapStateToProps = (state, ownProps) => {
|
|||||||
origin,
|
origin,
|
||||||
iconUrl: null,
|
iconUrl: null,
|
||||||
extensionId: null,
|
extensionId: null,
|
||||||
subjectType: SUBJECT_TYPES.UNKNOWN,
|
subjectType: SubjectType.Unknown,
|
||||||
};
|
};
|
||||||
|
|
||||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||||
const isSnap = targetSubjectMetadata.subjectType === SUBJECT_TYPES.SNAP;
|
const isSnap = targetSubjectMetadata.subjectType === SubjectType.Snap;
|
||||||
///: END:ONLY_INCLUDE_IN
|
///: END:ONLY_INCLUDE_IN
|
||||||
|
|
||||||
const accountsWithLabels = getAccountsWithLabels(state);
|
const accountsWithLabels = getAccountsWithLabels(state);
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||||
|
import { SubjectType } from '@metamask/subject-metadata-controller';
|
||||||
|
///: END:ONLY_INCLUDE_IN
|
||||||
import {
|
import {
|
||||||
createSelector,
|
createSelector,
|
||||||
createSelectorCreator,
|
createSelectorCreator,
|
||||||
@ -28,13 +31,7 @@ import {
|
|||||||
LedgerTransportTypes,
|
LedgerTransportTypes,
|
||||||
HardwareTransportStates,
|
HardwareTransportStates,
|
||||||
} from '../../shared/constants/hardware-wallets';
|
} from '../../shared/constants/hardware-wallets';
|
||||||
|
import { MESSAGE_TYPE } from '../../shared/constants/app';
|
||||||
import {
|
|
||||||
MESSAGE_TYPE,
|
|
||||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
|
||||||
SUBJECT_TYPES,
|
|
||||||
///: END:ONLY_INCLUDE_IN
|
|
||||||
} from '../../shared/constants/app';
|
|
||||||
|
|
||||||
import { TRUNCATED_NAME_CHAR_LIMIT } from '../../shared/constants/labels';
|
import { TRUNCATED_NAME_CHAR_LIMIT } from '../../shared/constants/labels';
|
||||||
|
|
||||||
@ -632,7 +629,7 @@ export function getTargetSubjectMetadata(state, origin) {
|
|||||||
const metadata = getSubjectMetadata(state)[origin];
|
const metadata = getSubjectMetadata(state)[origin];
|
||||||
|
|
||||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||||
if (metadata?.subjectType === SUBJECT_TYPES.SNAP) {
|
if (metadata?.subjectType === SubjectType.Snap) {
|
||||||
const { svgIcon, ...remainingMetadata } = metadata;
|
const { svgIcon, ...remainingMetadata } = metadata;
|
||||||
return {
|
return {
|
||||||
...remainingMetadata,
|
...remainingMetadata,
|
||||||
|
Loading…
Reference in New Issue
Block a user