mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
[MMI] Fixed connect mmi button several issues (#20455)
* fixed connect mmi button several issues * Fixed snapshot * Improved multiple things * running yarn dedupe * Update LavaMoat policies * For some reason, this.mmiConfigurationController.store.mmiConfiguration?.portfolio sometimes is undefined, added [] if null. Moved the || {} outside the find method * minor improvements --------- Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
This commit is contained in:
parent
20e16d41be
commit
486ade85f3
@ -569,7 +569,7 @@ export default class MMIController extends EventEmitter {
|
|||||||
const mmiDashboardData = await this.handleMmiDashboardData();
|
const mmiDashboardData = await this.handleMmiDashboardData();
|
||||||
const cookieSetUrls =
|
const cookieSetUrls =
|
||||||
this.mmiConfigurationController.store.mmiConfiguration?.portfolio
|
this.mmiConfigurationController.store.mmiConfiguration?.portfolio
|
||||||
?.cookieSetUrls;
|
?.cookieSetUrls || [];
|
||||||
setDashboardCookie(mmiDashboardData, cookieSetUrls);
|
setDashboardCookie(mmiDashboardData, cookieSetUrls);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
|
@ -790,10 +790,26 @@
|
|||||||
"@metamask-institutional/extension>@metamask-institutional/custody-controller": {
|
"@metamask-institutional/extension>@metamask-institutional/custody-controller": {
|
||||||
"packages": {
|
"packages": {
|
||||||
"@ethereumjs/tx>@ethereumjs/util": true,
|
"@ethereumjs/tx>@ethereumjs/util": true,
|
||||||
"@metamask-institutional/custody-keyring": true,
|
"@metamask-institutional/extension>@metamask-institutional/custody-keyring": true,
|
||||||
"@metamask/obs-store": true
|
"@metamask/obs-store": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@metamask-institutional/extension>@metamask-institutional/custody-keyring": {
|
||||||
|
"globals": {
|
||||||
|
"console.log": true,
|
||||||
|
"console.warn": true
|
||||||
|
},
|
||||||
|
"packages": {
|
||||||
|
"@ethereumjs/tx>@ethereumjs/util": true,
|
||||||
|
"@metamask-institutional/custody-keyring>@metamask-institutional/configuration-client": true,
|
||||||
|
"@metamask-institutional/sdk": true,
|
||||||
|
"@metamask-institutional/sdk>@metamask-institutional/types": true,
|
||||||
|
"@metamask/obs-store": true,
|
||||||
|
"browserify>crypto-browserify": true,
|
||||||
|
"browserify>events": true,
|
||||||
|
"gulp-sass>lodash.clonedeep": true
|
||||||
|
}
|
||||||
|
},
|
||||||
"@metamask-institutional/institutional-features": {
|
"@metamask-institutional/institutional-features": {
|
||||||
"globals": {
|
"globals": {
|
||||||
"chrome.runtime.id": true,
|
"chrome.runtime.id": true,
|
||||||
|
@ -222,7 +222,7 @@
|
|||||||
"@material-ui/core": "^4.11.0",
|
"@material-ui/core": "^4.11.0",
|
||||||
"@metamask-institutional/custody-controller": "0.2.6",
|
"@metamask-institutional/custody-controller": "0.2.6",
|
||||||
"@metamask-institutional/custody-keyring": "^0.0.25",
|
"@metamask-institutional/custody-keyring": "^0.0.25",
|
||||||
"@metamask-institutional/extension": "^0.2.1",
|
"@metamask-institutional/extension": "0.3.2",
|
||||||
"@metamask-institutional/institutional-features": "^1.1.8",
|
"@metamask-institutional/institutional-features": "^1.1.8",
|
||||||
"@metamask-institutional/portfolio-dashboard": "^1.1.3",
|
"@metamask-institutional/portfolio-dashboard": "^1.1.3",
|
||||||
"@metamask-institutional/rpc-allowlist": "^1.0.0",
|
"@metamask-institutional/rpc-allowlist": "^1.0.0",
|
||||||
|
@ -48,9 +48,8 @@ const CustodyConfirmLink = ({ hideModal }) => {
|
|||||||
const { custodians } = useSelector(getMMIConfiguration);
|
const { custodians } = useSelector(getMMIConfiguration);
|
||||||
const { custodianName } =
|
const { custodianName } =
|
||||||
custodyAccountDetails[toChecksumHexAddress(address)] || {};
|
custodyAccountDetails[toChecksumHexAddress(address)] || {};
|
||||||
const { displayName, iconUrl } = custodians.find(
|
const { displayName, iconUrl } =
|
||||||
(item) => item.name === custodianName || {},
|
custodians.find((item) => item.name === custodianName) || {};
|
||||||
);
|
|
||||||
const { url, ethereum, text, action } = useSelector(
|
const { url, ethereum, text, action } = useSelector(
|
||||||
(state) => state.appState.modal.modalState.props.link || {},
|
(state) => state.appState.modal.modalState.props.link || {},
|
||||||
);
|
);
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import React, { useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
import { ThemeType } from '../../../../shared/constants/preferences';
|
||||||
|
|
||||||
const LOGO_WIDTH = 162;
|
const LOGO_WIDTH = 162;
|
||||||
const LOGO_HEIGHT = 30;
|
const LOGO_HEIGHT = 30;
|
||||||
@ -994,6 +995,6 @@ export default function MetaFoxHorizontalLogo({
|
|||||||
}
|
}
|
||||||
|
|
||||||
MetaFoxHorizontalLogo.propTypes = {
|
MetaFoxHorizontalLogo.propTypes = {
|
||||||
theme: PropTypes.oneOf(['light', 'dark']),
|
theme: PropTypes.oneOf([ThemeType.light, ThemeType.dark, ThemeType.os]),
|
||||||
className: PropTypes.string,
|
className: PropTypes.string,
|
||||||
};
|
};
|
||||||
|
@ -50,9 +50,9 @@ const InstitutionalHomeFooter = ({ activitySupportDisplayStyle }) => {
|
|||||||
InstitutionalHomeFooter.propTypes = {
|
InstitutionalHomeFooter.propTypes = {
|
||||||
activitySupportDisplayStyle: PropTypes.shape({
|
activitySupportDisplayStyle: PropTypes.shape({
|
||||||
justifyContent: PropTypes.string.isRequired,
|
justifyContent: PropTypes.string.isRequired,
|
||||||
paddingLeft: PropTypes.string,
|
paddingLeft: PropTypes.number,
|
||||||
marginBottom: PropTypes.string,
|
marginBottom: PropTypes.number,
|
||||||
marginTop: PropTypes.string,
|
marginTop: PropTypes.number,
|
||||||
}).isRequired,
|
}).isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -90,6 +90,7 @@ exports[`CustodyPage renders CustodyPage 2`] = `
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
@ -8,6 +8,7 @@ import React, {
|
|||||||
import { useSelector, useDispatch } from 'react-redux';
|
import { useSelector, useDispatch } from 'react-redux';
|
||||||
import { useHistory } from 'react-router-dom';
|
import { useHistory } from 'react-router-dom';
|
||||||
import { v4 as uuidv4 } from 'uuid';
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
import { isEqual } from 'lodash';
|
||||||
import { useI18nContext } from '../../../hooks/useI18nContext';
|
import { useI18nContext } from '../../../hooks/useI18nContext';
|
||||||
import { mmiActionsFactory } from '../../../store/institutional/institution-background';
|
import { mmiActionsFactory } from '../../../store/institutional/institution-background';
|
||||||
import { MetaMetricsContext } from '../../../contexts/metametrics';
|
import { MetaMetricsContext } from '../../../contexts/metametrics';
|
||||||
@ -42,6 +43,7 @@ import {
|
|||||||
} from '../../../helpers/constants/routes';
|
} from '../../../helpers/constants/routes';
|
||||||
import { getCurrentChainId, getSelectedAddress } from '../../../selectors';
|
import { getCurrentChainId, getSelectedAddress } from '../../../selectors';
|
||||||
import { getMMIConfiguration } from '../../../selectors/institutional/selectors';
|
import { getMMIConfiguration } from '../../../selectors/institutional/selectors';
|
||||||
|
import { getInstitutionalConnectRequests } from '../../../ducks/institutional/institutional';
|
||||||
import CustodyAccountList from '../connect-custody/account-list';
|
import CustodyAccountList from '../connect-custody/account-list';
|
||||||
import JwtUrlForm from '../../../components/institutional/jwt-url-form';
|
import JwtUrlForm from '../../../components/institutional/jwt-url-form';
|
||||||
import {
|
import {
|
||||||
@ -74,14 +76,15 @@ const CustodyPage = () => {
|
|||||||
const [apiUrl, setApiUrl] = useState('');
|
const [apiUrl, setApiUrl] = useState('');
|
||||||
const [addNewTokenClicked, setAddNewTokenClicked] = useState(false);
|
const [addNewTokenClicked, setAddNewTokenClicked] = useState(false);
|
||||||
const [chainId, setChainId] = useState(parseInt(currentChainId, 16));
|
const [chainId, setChainId] = useState(parseInt(currentChainId, 16));
|
||||||
const [connectRequest, setConnectRequest] = useState(undefined);
|
const connectRequests = useSelector(getInstitutionalConnectRequests, isEqual);
|
||||||
const [accounts, setAccounts] = useState();
|
const [accounts, setAccounts] = useState();
|
||||||
const address = useSelector(getSelectedAddress);
|
const address = useSelector(getSelectedAddress);
|
||||||
|
const connectRequest = connectRequests ? connectRequests[0] : undefined;
|
||||||
|
|
||||||
const custodianButtons = useMemo(() => {
|
const custodianButtons = useMemo(() => {
|
||||||
const custodianItems = [];
|
const custodianItems = [];
|
||||||
|
|
||||||
const sortedCustodians = custodians.sort(function (a, b) {
|
const sortedCustodians = [...custodians].sort(function (a, b) {
|
||||||
const nameA = a.name.toLowerCase();
|
const nameA = a.name.toLowerCase();
|
||||||
const nameB = b.name.toLowerCase();
|
const nameB = b.name.toLowerCase();
|
||||||
|
|
||||||
@ -94,14 +97,34 @@ const CustodyPage = () => {
|
|||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function shouldShowInProduction(custodian) {
|
||||||
|
return (
|
||||||
|
custodian &&
|
||||||
|
'production' in custodian &&
|
||||||
|
!custodian.production &&
|
||||||
|
process.env.METAMASK_ENVIRONMENT === 'production'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isHidden(custodian) {
|
||||||
|
return custodian && 'hidden' in custodian && custodian.hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isNotSelectedCustodian(custodian) {
|
||||||
|
return (
|
||||||
|
custodian &&
|
||||||
|
'name' in custodian &&
|
||||||
|
connectRequest &&
|
||||||
|
Object.keys(connectRequest).length &&
|
||||||
|
custodian.name !== selectedCustodianName
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
sortedCustodians.forEach((custodian) => {
|
sortedCustodians.forEach((custodian) => {
|
||||||
if (
|
if (
|
||||||
(!custodian.production &&
|
shouldShowInProduction(custodian) ||
|
||||||
process.env.METAMASK_ENVIRONMENT === 'production') ||
|
isHidden(custodian) ||
|
||||||
custodian.hidden ||
|
isNotSelectedCustodian(custodian)
|
||||||
(connectRequest &&
|
|
||||||
Object.keys(connectRequest).length &&
|
|
||||||
custodian.name !== selectedCustodianName)
|
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -134,23 +157,27 @@ const CustodyPage = () => {
|
|||||||
size={BUTTON_SIZES.SM}
|
size={BUTTON_SIZES.SM}
|
||||||
data-testid="custody-connect-button"
|
data-testid="custody-connect-button"
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
const jwtListValue = await dispatch(
|
try {
|
||||||
mmiActions.getCustodianJWTList(custodian.name),
|
const jwtListValue = await dispatch(
|
||||||
);
|
mmiActions.getCustodianJWTList(custodian.name),
|
||||||
setSelectedCustodianName(custodian.name);
|
);
|
||||||
setSelectedCustodianType(custodian.type);
|
setSelectedCustodianName(custodian.name);
|
||||||
setSelectedCustodianImage(custodian.iconUrl);
|
setSelectedCustodianType(custodian.type);
|
||||||
setSelectedCustodianDisplayName(custodian.displayName);
|
setSelectedCustodianImage(custodian.iconUrl);
|
||||||
setApiUrl(custodian.apiUrl);
|
setSelectedCustodianDisplayName(custodian.displayName);
|
||||||
setCurrentJwt(jwtListValue[0] || '');
|
setApiUrl(custodian.apiUrl);
|
||||||
setJwtList(jwtListValue);
|
setCurrentJwt(jwtListValue[0] || '');
|
||||||
trackEvent({
|
setJwtList(jwtListValue);
|
||||||
category: MetaMetricsEventCategory.MMI,
|
trackEvent({
|
||||||
event: MetaMetricsEventName.CustodianSelected,
|
category: MetaMetricsEventCategory.MMI,
|
||||||
properties: {
|
event: MetaMetricsEventName.CustodianSelected,
|
||||||
custodian: custodian.name,
|
properties: {
|
||||||
},
|
custodian: custodian.name,
|
||||||
});
|
},
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error:', error);
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t('select')}
|
{t('select')}
|
||||||
@ -208,58 +235,54 @@ const CustodyPage = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchConnectRequest = async () => {
|
const fetchConnectRequest = async () => {
|
||||||
const connectRequestValue = await dispatch(
|
try {
|
||||||
mmiActions.getCustodianConnectRequest(),
|
if (connectRequest && Object.keys(connectRequest).length) {
|
||||||
);
|
const {
|
||||||
|
token,
|
||||||
|
environment: custodianName,
|
||||||
|
service: custodianType,
|
||||||
|
apiUrl: custodianApiUrl,
|
||||||
|
} = connectRequest;
|
||||||
|
|
||||||
if (Object.keys(connectRequestValue).length) {
|
const custodianToken =
|
||||||
const {
|
token || (await dispatch(mmiActions.getCustodianToken(address)));
|
||||||
token,
|
|
||||||
custodianName,
|
|
||||||
custodianType,
|
|
||||||
apiUrl: custodianApiUrl,
|
|
||||||
} = connectRequestValue;
|
|
||||||
|
|
||||||
const jwt =
|
setCurrentJwt(custodianToken);
|
||||||
token || (await dispatch(mmiActions.getCustodianToken(address)));
|
setSelectedCustodianType(custodianType);
|
||||||
const accountsValue = await dispatch(
|
setSelectedCustodianName(custodianName);
|
||||||
mmiActions.getCustodianAccounts(
|
setApiUrl(custodianApiUrl);
|
||||||
jwt,
|
setConnectError('');
|
||||||
custodianApiUrl,
|
|
||||||
custodianType,
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
setConnectRequest(connectRequestValue);
|
const accountsValue = await dispatch(
|
||||||
setCurrentJwt(jwt);
|
mmiActions.getCustodianAccounts(
|
||||||
setSelectedCustodianType(custodianType);
|
custodianToken,
|
||||||
setSelectedCustodianName(custodianName);
|
custodianApiUrl,
|
||||||
setApiUrl(custodianApiUrl);
|
custodianType,
|
||||||
setConnectError('');
|
true,
|
||||||
setAccounts(accountsValue);
|
),
|
||||||
|
);
|
||||||
|
|
||||||
trackEvent({
|
setAccounts(accountsValue);
|
||||||
category: MetaMetricsEventCategory.MMI,
|
|
||||||
event: MetaMetricsEventName.CustodianConnected,
|
trackEvent({
|
||||||
properties: {
|
category: MetaMetricsEventCategory.MMI,
|
||||||
custodian: custodianName,
|
event: MetaMetricsEventName.CustodianConnected,
|
||||||
apiUrl,
|
properties: {
|
||||||
rpc: Boolean(connectRequest),
|
custodian: custodianName,
|
||||||
},
|
apiUrl,
|
||||||
});
|
rpc: Boolean(connectRequest),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
handleConnectError(error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleFetchConnectRequest = async () => {
|
const handleFetchConnectRequest = () => {
|
||||||
try {
|
setLoading(true);
|
||||||
setLoading(true);
|
fetchConnectRequest().finally(() => setLoading(false));
|
||||||
await fetchConnectRequest();
|
|
||||||
setLoading(false);
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
setLoading(false);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
handleFetchConnectRequest();
|
handleFetchConnectRequest();
|
||||||
@ -343,8 +366,7 @@ const CustodyPage = () => {
|
|||||||
{selectError}
|
{selectError}
|
||||||
</Text>
|
</Text>
|
||||||
)}
|
)}
|
||||||
|
{!accounts && !selectedCustodianType && (
|
||||||
{!accounts && !selectedCustodianType ? (
|
|
||||||
<Box
|
<Box
|
||||||
padding={4}
|
padding={4}
|
||||||
display={Display.Flex}
|
display={Display.Flex}
|
||||||
@ -383,7 +405,7 @@ const CustodyPage = () => {
|
|||||||
<ul width={BlockSize.Full}>{custodianButtons}</ul>
|
<ul width={BlockSize.Full}>{custodianButtons}</ul>
|
||||||
</Box>
|
</Box>
|
||||||
</Box>
|
</Box>
|
||||||
) : null}
|
)}
|
||||||
{!accounts && selectedCustodianType && (
|
{!accounts && selectedCustodianType && (
|
||||||
<>
|
<>
|
||||||
<Box
|
<Box
|
||||||
|
@ -107,8 +107,9 @@ import { getPermissionSubjects } from './permissions';
|
|||||||
export function isNetworkLoading(state) {
|
export function isNetworkLoading(state) {
|
||||||
const selectedNetworkClientId = getSelectedNetworkClientId(state);
|
const selectedNetworkClientId = getSelectedNetworkClientId(state);
|
||||||
return (
|
return (
|
||||||
|
selectedNetworkClientId &&
|
||||||
state.metamask.networksMetadata[selectedNetworkClientId].status !==
|
state.metamask.networksMetadata[selectedNetworkClientId].status !==
|
||||||
NetworkStatus.Available
|
NetworkStatus.Available
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
64
yarn.lock
64
yarn.lock
@ -3648,16 +3648,16 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@metamask-institutional/custody-controller@npm:^0.2.8":
|
"@metamask-institutional/custody-controller@npm:^0.2.9":
|
||||||
version: 0.2.8
|
version: 0.2.9
|
||||||
resolution: "@metamask-institutional/custody-controller@npm:0.2.8"
|
resolution: "@metamask-institutional/custody-controller@npm:0.2.9"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ethereumjs/util": "npm:^8.0.5"
|
"@ethereumjs/util": "npm:^8.0.5"
|
||||||
"@metamask-institutional/custody-keyring": "npm:^0.0.25"
|
"@metamask-institutional/custody-keyring": "npm:^0.0.26"
|
||||||
"@metamask-institutional/sdk": "npm:^0.1.18"
|
"@metamask-institutional/sdk": "npm:^0.1.18"
|
||||||
"@metamask-institutional/types": "npm:^1.0.3"
|
"@metamask-institutional/types": "npm:^1.0.3"
|
||||||
"@metamask/obs-store": "npm:^8.0.0"
|
"@metamask/obs-store": "npm:^8.0.0"
|
||||||
checksum: b10fb2f4f5d23e6f28a3606ba5cdf73e140537e061b5532d61283f4fd85faf334cfa94663d101a6323b8149656b4294d027fc3be0e56c9654738ec6c68c7e461
|
checksum: b59a49b42d51c8b8eced77c06e4398afacb0e6c47b7757b3df7c0cacbb77656f12c0e681cf3e71760363ea95e7d8c167a9146b5573c0bed220a466572e739080
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@ -3693,20 +3693,36 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@metamask-institutional/extension@npm:^0.2.1":
|
"@metamask-institutional/custody-keyring@npm:^0.0.26":
|
||||||
version: 0.2.1
|
version: 0.0.26
|
||||||
resolution: "@metamask-institutional/extension@npm:0.2.1"
|
resolution: "@metamask-institutional/custody-keyring@npm:0.0.26"
|
||||||
|
dependencies:
|
||||||
|
"@ethereumjs/tx": "npm:^4.1.1"
|
||||||
|
"@ethereumjs/util": "npm:^8.0.5"
|
||||||
|
"@metamask-institutional/configuration-client": "npm:^1.0.6"
|
||||||
|
"@metamask-institutional/sdk": "npm:^0.1.18"
|
||||||
|
"@metamask-institutional/types": "npm:^1.0.3"
|
||||||
|
"@metamask/obs-store": "npm:^8.0.0"
|
||||||
|
crypto: "npm:^1.0.1"
|
||||||
|
lodash.clonedeep: "npm:^4.5.0"
|
||||||
|
checksum: c2163fc6b83b3c0dd5c5a7c69c71f5a2563a28ffb2df069b4ed16c56692872fb52b40aed911e1af30a0fee733a61d0239677df04d5da945c7f4cf5e003eff8d9
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@metamask-institutional/extension@npm:0.3.2":
|
||||||
|
version: 0.3.2
|
||||||
|
resolution: "@metamask-institutional/extension@npm:0.3.2"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ethereumjs/util": "npm:^8.0.5"
|
"@ethereumjs/util": "npm:^8.0.5"
|
||||||
"@metamask-institutional/custody-controller": "npm:^0.2.8"
|
"@metamask-institutional/custody-controller": "npm:^0.2.9"
|
||||||
"@metamask-institutional/custody-keyring": "npm:^0.0.25"
|
"@metamask-institutional/custody-keyring": "npm:^0.0.26"
|
||||||
"@metamask-institutional/portfolio-dashboard": "npm:^1.4.0"
|
"@metamask-institutional/portfolio-dashboard": "npm:^1.4.0"
|
||||||
"@metamask-institutional/sdk": "npm:^0.1.18"
|
"@metamask-institutional/sdk": "npm:^0.1.18"
|
||||||
"@metamask-institutional/transaction-update": "npm:^0.1.23"
|
"@metamask-institutional/transaction-update": "npm:^0.1.24"
|
||||||
"@metamask-institutional/types": "npm:^1.0.3"
|
"@metamask-institutional/types": "npm:^1.0.3"
|
||||||
jest-create-mock-instance: "npm:^2.0.0"
|
jest-create-mock-instance: "npm:^2.0.0"
|
||||||
jest-fetch-mock: "npm:3.0.3"
|
jest-fetch-mock: "npm:3.0.3"
|
||||||
checksum: 28c80a016d49d41b8ad74732637da00f9bbabc64af1ec7b8704a03bfe809f4683502b3552646c49c478613f27f16becd981c68abc37244186688e4c170c3f991
|
checksum: f3fe93a1f2872e2f27b56af3e03b0aba90bb290cb7b800bed086db16e56bd9251e99eb7f46fd142e1ccb588f13d24a9379a23dbd778e8a0e83e5dbf7c11692a7
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@ -3756,17 +3772,17 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@metamask-institutional/transaction-update@npm:^0.1.21, @metamask-institutional/transaction-update@npm:^0.1.23":
|
"@metamask-institutional/transaction-update@npm:^0.1.21, @metamask-institutional/transaction-update@npm:^0.1.24":
|
||||||
version: 0.1.23
|
version: 0.1.24
|
||||||
resolution: "@metamask-institutional/transaction-update@npm:0.1.23"
|
resolution: "@metamask-institutional/transaction-update@npm:0.1.24"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@metamask-institutional/custody-keyring": "npm:^0.0.25"
|
"@metamask-institutional/custody-keyring": "npm:^0.0.26"
|
||||||
"@metamask-institutional/sdk": "npm:^0.1.18"
|
"@metamask-institutional/sdk": "npm:^0.1.18"
|
||||||
"@metamask-institutional/types": "npm:^1.0.3"
|
"@metamask-institutional/types": "npm:^1.0.3"
|
||||||
"@metamask-institutional/websocket-client": "npm:^0.1.25"
|
"@metamask-institutional/websocket-client": "npm:^0.1.26"
|
||||||
"@metamask/obs-store": "npm:^8.0.0"
|
"@metamask/obs-store": "npm:^8.0.0"
|
||||||
ethereumjs-util: "npm:^7.1.5"
|
ethereumjs-util: "npm:^7.1.5"
|
||||||
checksum: 621ff8277fecf73c59e3bde74364f1f4b68c7e086caf20bfb01029c43ff9145c51ca5acd89c10204c56e820837fb7736d2968d3bc1b30f3c215061a162d4d74c
|
checksum: d767d61600101ca3c580e3eeb9133d1a9d0753fd6190a830f798142074ff0e69142c567094dfb46062a299ee53b69db47021014e015db8c0fa55038bcdca7ca1
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@ -3777,15 +3793,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@metamask-institutional/websocket-client@npm:^0.1.25":
|
"@metamask-institutional/websocket-client@npm:^0.1.26":
|
||||||
version: 0.1.25
|
version: 0.1.26
|
||||||
resolution: "@metamask-institutional/websocket-client@npm:0.1.25"
|
resolution: "@metamask-institutional/websocket-client@npm:0.1.26"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@metamask-institutional/custody-keyring": "npm:^0.0.25"
|
"@metamask-institutional/custody-keyring": "npm:^0.0.26"
|
||||||
"@metamask-institutional/sdk": "npm:^0.1.18"
|
"@metamask-institutional/sdk": "npm:^0.1.18"
|
||||||
"@metamask-institutional/types": "npm:^1.0.3"
|
"@metamask-institutional/types": "npm:^1.0.3"
|
||||||
mock-socket: "npm:^9.2.1"
|
mock-socket: "npm:^9.2.1"
|
||||||
checksum: b0ab0b17974e83b3c13e7a7a687b9dc254606f7120685602a832271ae16c46ce257820f0af8e0f74c8fa2a82bdc20e00534c9f43beae139b6def9df7b7a8063d
|
checksum: ae2b5146c4922a76100d8348a7b22dacc5d43cda3f2be92dda24251082061462dab327059793b7b61b4d7c4270e7b7fd40c0da8feac0bcf7805e18c5f2bc6db9
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@ -24224,7 +24240,7 @@ __metadata:
|
|||||||
"@material-ui/core": "npm:^4.11.0"
|
"@material-ui/core": "npm:^4.11.0"
|
||||||
"@metamask-institutional/custody-controller": "npm:0.2.6"
|
"@metamask-institutional/custody-controller": "npm:0.2.6"
|
||||||
"@metamask-institutional/custody-keyring": "npm:^0.0.25"
|
"@metamask-institutional/custody-keyring": "npm:^0.0.25"
|
||||||
"@metamask-institutional/extension": "npm:^0.2.1"
|
"@metamask-institutional/extension": "npm:0.3.2"
|
||||||
"@metamask-institutional/institutional-features": "npm:^1.1.8"
|
"@metamask-institutional/institutional-features": "npm:^1.1.8"
|
||||||
"@metamask-institutional/portfolio-dashboard": "npm:^1.1.3"
|
"@metamask-institutional/portfolio-dashboard": "npm:^1.1.3"
|
||||||
"@metamask-institutional/rpc-allowlist": "npm:^1.0.0"
|
"@metamask-institutional/rpc-allowlist": "npm:^1.0.0"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user