diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index de9002f7df37..71f8151f53fd 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -3819,7 +3819,7 @@ }, "permission_assets": { "message": "Display account assets in MetaMask.", - "description": "The description for the `endowment:name-assets` permission." + "description": "The description for the `endowment:assets` permission." }, "permission_assetsDescription": { "message": "Allow $1 to provide asset information to the MetaMask client. The assets can be onchain or offchain.", @@ -3945,6 +3945,14 @@ "message": "Allow $1 to display notifications within MetaMask. A short notification text can be triggered by a snap for actionable or time-sensitive information.", "description": "An extended description for the `snap_notify` permission. $1 is the snap name." }, + "permission_protocol": { + "message": "Provide protocol data for one or more chains.", + "description": "The description for the `endowment:protocol` permission." + }, + "permission_protocolDescription": { + "message": "Allow $1 to provide MetaMask with protocol data such as gas estimates or token information.", + "description": "An extended description for the `endowment:protocol` permission. $1 is the name of the Snap." + }, "permission_rpc": { "message": "Allow $1 to communicate directly with $2.", "description": "The description for the `endowment:rpc` permission. $1 is 'other snaps' or 'websites', $2 is the snap name." diff --git a/app/scripts/controllers/permissions/specifications.test.js b/app/scripts/controllers/permissions/specifications.test.js index e0b3f1623ccd..819945e4745d 100644 --- a/app/scripts/controllers/permissions/specifications.test.js +++ b/app/scripts/controllers/permissions/specifications.test.js @@ -16,7 +16,7 @@ describe('PermissionController specifications', () => { describe('caveat specifications', () => { it('getCaveatSpecifications returns the expected specifications object', () => { const caveatSpecifications = getCaveatSpecifications({}); - expect(Object.keys(caveatSpecifications)).toHaveLength(12); + expect(Object.keys(caveatSpecifications)).toHaveLength(13); expect(caveatSpecifications[Caip25CaveatType].type).toStrictEqual( Caip25CaveatType, ); @@ -54,6 +54,9 @@ describe('PermissionController specifications', () => { expect(caveatSpecifications.lookupMatchers.type).toStrictEqual( SnapCaveatType.LookupMatchers, ); + expect(caveatSpecifications.protocolSnapScopes.type).toStrictEqual( + SnapCaveatType.ProtocolSnapScopes, + ); }); }); diff --git a/builds.yml b/builds.yml index eda6af0c2840..dde73817d489 100644 --- a/builds.yml +++ b/builds.yml @@ -27,7 +27,7 @@ buildTypes: - ALLOW_LOCAL_SNAPS: false - REQUIRE_SNAPS_ALLOWLIST: true - REJECT_INVALID_SNAPS_PLATFORM_VERSION: true - - IFRAME_EXECUTION_ENVIRONMENT_URL: https://execution.metamask.io/iframe/6.13.0/index.html + - IFRAME_EXECUTION_ENVIRONMENT_URL: https://execution.metamask.io/iframe/6.14.0/index.html - ACCOUNT_SNAPS_DIRECTORY_URL: https://snaps.metamask.io/account-management # Main build uses the default browser manifest manifestOverrides: false @@ -48,7 +48,7 @@ buildTypes: - ALLOW_LOCAL_SNAPS: false - REQUIRE_SNAPS_ALLOWLIST: true - REJECT_INVALID_SNAPS_PLATFORM_VERSION: true - - IFRAME_EXECUTION_ENVIRONMENT_URL: https://execution.metamask.io/iframe/6.13.0/index.html + - IFRAME_EXECUTION_ENVIRONMENT_URL: https://execution.metamask.io/iframe/6.14.0/index.html - ACCOUNT_SNAPS_DIRECTORY_URL: https://snaps.metamask.io/account-management # Modifies how the version is displayed. # eg. instead of 10.25.0 -> 10.25.0-beta.2 @@ -72,7 +72,7 @@ buildTypes: - ALLOW_LOCAL_SNAPS: true - REQUIRE_SNAPS_ALLOWLIST: false - REJECT_INVALID_SNAPS_PLATFORM_VERSION: false - - IFRAME_EXECUTION_ENVIRONMENT_URL: https://execution.metamask.io/iframe/6.13.0/index.html + - IFRAME_EXECUTION_ENVIRONMENT_URL: https://execution.metamask.io/iframe/6.14.0/index.html - SUPPORT_LINK: https://support.metamask.io/ - SUPPORT_REQUEST_LINK: https://support.metamask.io/ - INFURA_ENV_KEY_REF: INFURA_FLASK_PROJECT_ID @@ -96,7 +96,7 @@ buildTypes: - ALLOW_LOCAL_SNAPS: false - REQUIRE_SNAPS_ALLOWLIST: true - REJECT_INVALID_SNAPS_PLATFORM_VERSION: true - - IFRAME_EXECUTION_ENVIRONMENT_URL: https://execution.metamask.io/iframe/6.13.0/index.html + - IFRAME_EXECUTION_ENVIRONMENT_URL: https://execution.metamask.io/iframe/6.14.0/index.html - MMI_CONFIGURATION_SERVICE_URL: https://configuration.metamask-institutional.io/v2/configuration/default - SUPPORT_LINK: https://support.metamask-institutional.io - SUPPORT_REQUEST_LINK: https://support.metamask-institutional.io diff --git a/package.json b/package.json index 40ba6a790da9..eae2e97b93ad 100644 --- a/package.json +++ b/package.json @@ -220,7 +220,7 @@ "@trezor/schema-utils@npm:1.0.2": "patch:@trezor/schema-utils@npm%3A1.0.2#~/.yarn/patches/@trezor-schema-utils-npm-1.0.2-7dd48689b2.patch", "lavamoat-core@npm:^15.1.1": "patch:lavamoat-core@npm%3A15.1.1#~/.yarn/patches/lavamoat-core-npm-15.1.1-51fbe39988.patch", "lavamoat-core@npm:^16.2.2": "patch:lavamoat-core@npm%3A16.2.2#~/.yarn/patches/lavamoat-core-npm-16.2.2-e361ff1f8a.patch", - "@metamask/snaps-sdk": "^6.16.0", + "@metamask/snaps-sdk": "^6.17.0", "@swc/types@0.1.5": "^0.1.6", "@babel/core": "patch:@babel/core@npm%3A7.25.9#~/.yarn/patches/@babel-core-npm-7.25.9-4ae3bff7f3.patch", "@babel/runtime": "patch:@babel/runtime@npm%3A7.25.9#~/.yarn/patches/@babel-runtime-npm-7.25.9-fe8c62510a.patch", @@ -348,11 +348,11 @@ "@metamask/selected-network-controller": "^19.0.0", "@metamask/signature-controller": "^23.1.0", "@metamask/smart-transactions-controller": "^16.0.1", - "@metamask/snaps-controllers": "^9.18.0", - "@metamask/snaps-execution-environments": "^6.13.0", - "@metamask/snaps-rpc-methods": "^11.10.0", - "@metamask/snaps-sdk": "^6.16.0", - "@metamask/snaps-utils": "^8.9.1", + "@metamask/snaps-controllers": "^9.19.0", + "@metamask/snaps-execution-environments": "^6.14.0", + "@metamask/snaps-rpc-methods": "^11.11.0", + "@metamask/snaps-sdk": "^6.17.0", + "@metamask/snaps-utils": "^8.10.0", "@metamask/solana-wallet-snap": "^1.2.0", "@metamask/transaction-controller": "^43.0.0", "@metamask/user-operation-controller": "^22.0.0", diff --git a/shared/constants/permissions.ts b/shared/constants/permissions.ts index ba0a0a02d53a..0b91841c05ea 100644 --- a/shared/constants/permissions.ts +++ b/shared/constants/permissions.ts @@ -61,6 +61,7 @@ export const PermissionWeight = Object.freeze({ wallet_snap: 4, endowment_networkAccess: 3, endowment_assets: 3, + endowment_protocol: 3, endowment_webassembly: 4, endowment_transactionInsight: 4, endowment_cronjob: 4, diff --git a/shared/constants/snaps/permissions.ts b/shared/constants/snaps/permissions.ts index 11a7b8fabaa6..28d3bd55a320 100644 --- a/shared/constants/snaps/permissions.ts +++ b/shared/constants/snaps/permissions.ts @@ -11,6 +11,7 @@ export const EndowmentPermissions = Object.freeze({ 'endowment:signature-insight': 'endowment:signature-insight', 'endowment:name-lookup': 'endowment:name-lookup', 'endowment:assets': 'endowment:assets', + 'endowment:protocol': 'endowment:protocol', ///: BEGIN:ONLY_INCLUDE_IF(keyring-snaps) 'endowment:keyring': 'endowment:keyring', ///: END:ONLY_INCLUDE_IF diff --git a/ui/components/app/snaps/snap-ui-checkbox/snap-ui-checkbox.tsx b/ui/components/app/snaps/snap-ui-checkbox/snap-ui-checkbox.tsx index 9c2606a2c77f..b937327a05c1 100644 --- a/ui/components/app/snaps/snap-ui-checkbox/snap-ui-checkbox.tsx +++ b/ui/components/app/snaps/snap-ui-checkbox/snap-ui-checkbox.tsx @@ -22,6 +22,7 @@ export type SnapUICheckboxProps = { label?: string; error?: string; form?: string; + disabled?: boolean; }; export const SnapUICheckbox: FunctionComponent = ({ @@ -31,6 +32,7 @@ export const SnapUICheckbox: FunctionComponent = ({ label, error, form, + disabled, ...props }) => { const { handleInputChange, getValue } = useSnapInterfaceContext(); @@ -65,6 +67,7 @@ export const SnapUICheckbox: FunctionComponent = ({ value={value} onLabel={label} offLabel={label} + disabled={disabled} {...props} /> ) : ( @@ -75,6 +78,7 @@ export const SnapUICheckbox: FunctionComponent = ({ inputProps={{ borderColor: BorderColor.borderMuted, }} + isDisabled={disabled} {...props} /> )} diff --git a/ui/components/app/snaps/snap-ui-dropdown/snap-ui-dropdown.tsx b/ui/components/app/snaps/snap-ui-dropdown/snap-ui-dropdown.tsx index 835734b2bf87..cfc73ab56ded 100644 --- a/ui/components/app/snaps/snap-ui-dropdown/snap-ui-dropdown.tsx +++ b/ui/components/app/snaps/snap-ui-dropdown/snap-ui-dropdown.tsx @@ -19,6 +19,7 @@ export type SnapUIDropdownProps = { error?: string; options: { name: string; value: string }[]; form?: string; + disabled?: boolean; }; export const SnapUIDropdown: FunctionComponent = ({ @@ -26,6 +27,7 @@ export const SnapUIDropdown: FunctionComponent = ({ label, error, form, + disabled, ...props }) => { const { handleInputChange, getValue } = useSnapInterfaceContext(); @@ -61,6 +63,7 @@ export const SnapUIDropdown: FunctionComponent = ({ style={{ border: '1px solid var(--color-border-muted)', }} + disabled={disabled} {...props} /> {error && ( diff --git a/ui/components/app/snaps/snap-ui-file-input/index.scss b/ui/components/app/snaps/snap-ui-file-input/index.scss index 787eb6150728..391dfbb60151 100644 --- a/ui/components/app/snaps/snap-ui-file-input/index.scss +++ b/ui/components/app/snaps/snap-ui-file-input/index.scss @@ -2,6 +2,7 @@ &__file-input { &__drop-zone { background-color: var(--color-background-alternative); + cursor: pointer; .mm-icon, .mm-text { diff --git a/ui/components/app/snaps/snap-ui-file-input/snap-ui-file-input.tsx b/ui/components/app/snaps/snap-ui-file-input/snap-ui-file-input.tsx index cfab068ab6db..cceaad92cc8c 100644 --- a/ui/components/app/snaps/snap-ui-file-input/snap-ui-file-input.tsx +++ b/ui/components/app/snaps/snap-ui-file-input/snap-ui-file-input.tsx @@ -42,6 +42,7 @@ export type SnapUIFileInputProps = { compact?: boolean; error?: boolean; helpText?: string; + disabled?: boolean; }; /** @@ -65,6 +66,7 @@ export type SnapUIFileInputProps = { * has an error, the help text is displayed in red. * @param props.helpText - The help text of the file input, which is displayed * below the file input field. + * @param props.disabled - Whether the file input is disabled. * @returns A file input element. */ export const SnapUIFileInput: FunctionComponent = ({ @@ -75,6 +77,7 @@ export const SnapUIFileInput: FunctionComponent = ({ compact, error, helpText, + disabled, }) => { const t = useI18nContext(); const { handleFileChange } = useSnapInterfaceContext(); @@ -126,6 +129,7 @@ export const SnapUIFileInput: FunctionComponent = ({ onChange={handleChange} accept={accept?.join(',')} hidden={true} + disabled={disabled} /> ); @@ -167,6 +171,7 @@ export const SnapUIFileInput: FunctionComponent = ({ borderRadius={BorderRadius.MD} onClick={handleClick} ariaLabel={t('uploadFile')} + disabled={disabled} /> {footer} @@ -183,7 +188,10 @@ export const SnapUIFileInput: FunctionComponent = ({ > {header} = ({ borderWidth={1} borderRadius={BorderRadius.MD} style={{ - cursor: 'pointer', backgroundColor: active ? 'var(--color-background-default-hover)' : 'var(--color-background-default)', diff --git a/ui/components/app/snaps/snap-ui-input/snap-ui-input.tsx b/ui/components/app/snaps/snap-ui-input/snap-ui-input.tsx index a5dd9ae224b9..35dda7bc1880 100644 --- a/ui/components/app/snaps/snap-ui-input/snap-ui-input.tsx +++ b/ui/components/app/snaps/snap-ui-input/snap-ui-input.tsx @@ -17,7 +17,7 @@ export type SnapUIInputProps = { export const SnapUIInput: FunctionComponent< SnapUIInputProps & FormTextFieldProps<'div'> -> = ({ name, form, label, ...props }) => { +> = ({ name, form, label, disabled, ...props }) => { const { handleInputChange, getValue, focusedInput, setCurrentFocusedInput } = useSnapInterfaceContext(); @@ -63,6 +63,7 @@ export const SnapUIInput: FunctionComponent< value={value} onChange={handleChange} label={label} + disabled={disabled} {...props} /> ); diff --git a/ui/components/app/snaps/snap-ui-radio-group/snap-ui-radio-group.tsx b/ui/components/app/snaps/snap-ui-radio-group/snap-ui-radio-group.tsx index 3f5609c53137..2fe9f8ae5dbd 100644 --- a/ui/components/app/snaps/snap-ui-radio-group/snap-ui-radio-group.tsx +++ b/ui/components/app/snaps/snap-ui-radio-group/snap-ui-radio-group.tsx @@ -15,7 +15,11 @@ import { Text, } from '../../../component-library'; -export type SnapUIRadioOption = { value: string; name: string }; +export type SnapUIRadioOption = { + value: string; + name: string; + disabled: boolean; +}; export type SnapUIRadioGroupProps = { name: string; @@ -23,6 +27,7 @@ export type SnapUIRadioGroupProps = { error?: string; options: SnapUIRadioOption[]; form?: string; + disabled?: boolean; }; export const SnapUIRadioGroup: FunctionComponent = ({ @@ -30,6 +35,7 @@ export const SnapUIRadioGroup: FunctionComponent = ({ label, error, form, + disabled, ...props }) => { const { handleInputChange, getValue } = useSnapInterfaceContext(); @@ -61,8 +67,13 @@ export const SnapUIRadioGroup: FunctionComponent = ({ checked={value === option.value} onChange={() => handleChange(option.value)} style={{ margin: '0' }} // radio buttons have default margins that need to be stripped to ensure proper centering + disabled={disabled || option.disabled} /> = ({ name: element.props.name, label: element.props.label, variant: element.props.variant, + disabled: element.props.disabled, form, }, }); diff --git a/ui/components/app/snaps/snap-ui-renderer/components/dropdown.ts b/ui/components/app/snaps/snap-ui-renderer/components/dropdown.ts index 09fdff0898dd..8a73dd445e03 100644 --- a/ui/components/app/snaps/snap-ui-renderer/components/dropdown.ts +++ b/ui/components/app/snaps/snap-ui-renderer/components/dropdown.ts @@ -12,6 +12,7 @@ export const dropdown: UIComponentFactory = ({ const options = children.map((child) => ({ value: child.props.value, name: child.props.children, + disabled: child.props.disabled, })); return { @@ -19,6 +20,7 @@ export const dropdown: UIComponentFactory = ({ props: { id: element.props.name, name: element.props.name, + disabled: element.props.disabled, form, options, }, diff --git a/ui/components/app/snaps/snap-ui-renderer/components/field.ts b/ui/components/app/snaps/snap-ui-renderer/components/field.ts index 169619b9a561..30686ef8926b 100644 --- a/ui/components/app/snaps/snap-ui-renderer/components/field.ts +++ b/ui/components/app/snaps/snap-ui-renderer/components/field.ts @@ -40,6 +40,7 @@ export const field: UIComponentFactory = ({ form, error: element.props.error !== undefined, helpText: element.props.error, + disabled: child.props.disabled, }, }; } @@ -85,6 +86,7 @@ export const field: UIComponentFactory = ({ form, error: element.props.error !== undefined, helpText: element.props.error, + disabled: child.props.disabled, }, propComponents: { startAccessory: leftAccessoryMapped && { @@ -119,6 +121,7 @@ export const field: UIComponentFactory = ({ name: dropdown.props.name, form, error: element.props.error, + disabled: child.props.disabled, }, }; } @@ -137,6 +140,7 @@ export const field: UIComponentFactory = ({ name: radioGroup.props.name, form, error: element.props.error, + disabled: child.props.disabled, }, }; } @@ -153,6 +157,7 @@ export const field: UIComponentFactory = ({ fieldLabel: element.props.label, form, error: element.props.error, + disabled: child.props.disabled, }, }; } @@ -171,6 +176,7 @@ export const field: UIComponentFactory = ({ label: element.props.label, form, error: element.props.error, + disabled: child.props.disabled, }, }; } diff --git a/ui/components/app/snaps/snap-ui-renderer/components/file-input.ts b/ui/components/app/snaps/snap-ui-renderer/components/file-input.ts index 8ea22787cfff..ecdb8a77ceb4 100644 --- a/ui/components/app/snaps/snap-ui-renderer/components/file-input.ts +++ b/ui/components/app/snaps/snap-ui-renderer/components/file-input.ts @@ -11,6 +11,7 @@ export const fileInput: UIComponentFactory = ({ name: element.props.name, accept: element.props.accept, compact: element.props.compact, + disabled: element.props.disabled, form, }, }); diff --git a/ui/components/app/snaps/snap-ui-renderer/components/input.ts b/ui/components/app/snaps/snap-ui-renderer/components/input.ts index beda6c5ba4cc..9c7d22d92056 100644 --- a/ui/components/app/snaps/snap-ui-renderer/components/input.ts +++ b/ui/components/app/snaps/snap-ui-renderer/components/input.ts @@ -42,6 +42,7 @@ export const input: UIComponentFactory = ({ element, form }) => { props: { id: element.props.name, placeholder: element.props.placeholder, + disabled: element.props.disabled, ...constructInputProps(element.props), name: element.props.name, form, diff --git a/ui/components/app/snaps/snap-ui-renderer/components/radioGroup.ts b/ui/components/app/snaps/snap-ui-renderer/components/radioGroup.ts index 78677e60ec35..edc2416e0506 100644 --- a/ui/components/app/snaps/snap-ui-renderer/components/radioGroup.ts +++ b/ui/components/app/snaps/snap-ui-renderer/components/radioGroup.ts @@ -12,6 +12,7 @@ export const radioGroup: UIComponentFactory = ({ const options = children.map((child) => ({ value: child.props.value, name: child.props.children, + disabled: child.props.disabled, })); return { @@ -19,6 +20,7 @@ export const radioGroup: UIComponentFactory = ({ props: { id: element.props.name, name: element.props.name, + disabled: element.props.disabled, form, options, }, diff --git a/ui/components/app/snaps/snap-ui-renderer/components/selector.ts b/ui/components/app/snaps/snap-ui-renderer/components/selector.ts index 0ad51fc20b35..81818b0ae2c8 100644 --- a/ui/components/app/snaps/snap-ui-renderer/components/selector.ts +++ b/ui/components/app/snaps/snap-ui-renderer/components/selector.ts @@ -15,7 +15,12 @@ export const selector: UIComponentFactory = ({ }) => { const children = getJsxChildren(element) as SelectorOptionElement[]; - const options = children.map((child) => child.props.value); + const options = children.map((child) => { + return { + value: child.props.value, + disabled: child.props.disabled, + }; + }); const optionComponents = children.map((child) => mapToTemplate({ @@ -31,6 +36,7 @@ export const selector: UIComponentFactory = ({ id: element.props.name, name: element.props.name, title: element.props.title, + disabled: element.props.disabled, form, options, }, diff --git a/ui/components/app/snaps/snap-ui-renderer/index.scss b/ui/components/app/snaps/snap-ui-renderer/index.scss index c840a76b670c..ac8a12e469a2 100644 --- a/ui/components/app/snaps/snap-ui-renderer/index.scss +++ b/ui/components/app/snaps/snap-ui-renderer/index.scss @@ -89,3 +89,28 @@ } } } + +// Additional adjustments for interactive components disabled states +.snap-ui-renderer, +.snap-ui-renderer__content { + [disabled] { + cursor: not-allowed !important; + } + + .mm-text-field--disabled, + .toggle-button--disabled, + .toggle-button--disabled *div { + cursor: not-allowed; + } + + // Override DS text field component's disabled state (we deliberately do not want to adjust opacity on labels) + .mm-form-text-field--disabled label { + opacity: 1; + } +} + +.snap-ui-snap-ui-renderer__file-input__drop-zone--disabled, +.snap-ui-renderer__radio-label--disabled { + opacity: 0.5; + cursor: not-allowed !important; +} diff --git a/ui/components/app/snaps/snap-ui-selector/snap-ui-selector.tsx b/ui/components/app/snaps/snap-ui-selector/snap-ui-selector.tsx index 6f844dc29425..3546d2980b2c 100644 --- a/ui/components/app/snaps/snap-ui-selector/snap-ui-selector.tsx +++ b/ui/components/app/snaps/snap-ui-selector/snap-ui-selector.tsx @@ -34,7 +34,7 @@ import { useSnapInterfaceContext } from '../../../../contexts/snaps'; export type SnapUISelectorProps = { name: string; title: string; - options: string[]; + options: { value: string; disabled: boolean }[]; optionComponents: React.ReactNode[]; form?: string; label?: string; @@ -46,12 +46,14 @@ type SelectorItemProps = { value: string; children: React.ReactNode; onSelect: (value: string) => void; + disabled?: boolean; }; const SelectorItem: React.FunctionComponent = ({ value, children, onSelect, + disabled, }) => { const handleClick = () => { onSelect(value); @@ -79,6 +81,7 @@ const SelectorItem: React.FunctionComponent = ({ minHeight: '48px', maxHeight: '64px', }} + disabled={disabled} > {children} @@ -122,7 +125,7 @@ export const SnapUISelector: React.FunctionComponent = ({ }; const selectedOptionIndex = options.findIndex( - (option) => option === selectedOptionValue, + (option) => option.value === selectedOptionValue, ); const selectedOption = optionComponents[selectedOptionIndex]; @@ -193,7 +196,11 @@ export const SnapUISelector: React.FunctionComponent = ({ gap={2} > {optionComponents.map((component, index) => ( - + {component} ))} diff --git a/ui/components/ui/dropdown/dropdown.js b/ui/components/ui/dropdown/dropdown.js index 802fd0a0b98b..083987855364 100644 --- a/ui/components/ui/dropdown/dropdown.js +++ b/ui/components/ui/dropdown/dropdown.js @@ -35,7 +35,11 @@ const Dropdown = ({ > {options.map((option) => { return ( - ); diff --git a/ui/helpers/utils/permission.js b/ui/helpers/utils/permission.js index 0cf6abf8b1cc..339ea5088a4a 100644 --- a/ui/helpers/utils/permission.js +++ b/ui/helpers/utils/permission.js @@ -550,6 +550,14 @@ const PERMISSION_DESCRIPTIONS = deepFreeze({ leftIcon: IconName.Coin, weight: PermissionWeight.endowment_assets, }), + [EndowmentPermissions['endowment:protocol']]: ({ t, subjectName }) => ({ + label: t('permission_protocol'), + description: t('permission_protocolDescription', [ + getSnapNameComponent(subjectName), + ]), + leftIcon: IconName.GlobalSearch, + weight: PermissionWeight.endowment_protocol, + }), [EndowmentPermissions['endowment:signature-insight']]: ({ t, permissionValue, diff --git a/yarn.lock b/yarn.lock index 5205f774ac47..77fc99d8db79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6227,9 +6227,9 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-controllers@npm:^9.10.0, @metamask/snaps-controllers@npm:^9.18.0": - version: 9.18.0 - resolution: "@metamask/snaps-controllers@npm:9.18.0" +"@metamask/snaps-controllers@npm:^9.10.0, @metamask/snaps-controllers@npm:^9.19.0": + version: 9.19.0 + resolution: "@metamask/snaps-controllers@npm:9.19.0" dependencies: "@metamask/approval-controller": "npm:^7.1.2" "@metamask/base-controller": "npm:^7.0.3" @@ -6242,9 +6242,9 @@ __metadata: "@metamask/post-message-stream": "npm:^9.0.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/snaps-registry": "npm:^3.2.3" - "@metamask/snaps-rpc-methods": "npm:^11.10.0" - "@metamask/snaps-sdk": "npm:^6.16.0" - "@metamask/snaps-utils": "npm:^8.9.0" + "@metamask/snaps-rpc-methods": "npm:^11.11.0" + "@metamask/snaps-sdk": "npm:^6.17.0" + "@metamask/snaps-utils": "npm:^8.10.0" "@metamask/utils": "npm:^11.0.1" "@xstate/fsm": "npm:^2.0.0" async-mutex: "npm:^0.5.0" @@ -6260,30 +6260,30 @@ __metadata: semver: "npm:^7.5.4" tar-stream: "npm:^3.1.7" peerDependencies: - "@metamask/snaps-execution-environments": ^6.13.0 + "@metamask/snaps-execution-environments": ^6.14.0 peerDependenciesMeta: "@metamask/snaps-execution-environments": optional: true - checksum: 10/a8691243fe69a4bd7b39074571950cb9ce01b4d8ce129925f4e08c8a4c895d9736f7bb7a6d5ebc94e2a2db1605a44382938300e560bcdf5ff894e6c17386e37d + checksum: 10/8d58a8097b6a289950441a8e6ba1266bbe36280a230bea37cf4b3f4a61f730455ca5a1875cf1e5c6474a5795a2534c4bf29ebe49e425b55ef36e3e76d2d720ce languageName: node linkType: hard -"@metamask/snaps-execution-environments@npm:^6.13.0": - version: 6.13.0 - resolution: "@metamask/snaps-execution-environments@npm:6.13.0" +"@metamask/snaps-execution-environments@npm:^6.14.0": + version: 6.14.0 + resolution: "@metamask/snaps-execution-environments@npm:6.14.0" dependencies: "@metamask/json-rpc-engine": "npm:^10.0.2" "@metamask/object-multiplex": "npm:^2.1.0" "@metamask/post-message-stream": "npm:^9.0.0" "@metamask/providers": "npm:^18.3.1" "@metamask/rpc-errors": "npm:^7.0.2" - "@metamask/snaps-sdk": "npm:^6.16.0" - "@metamask/snaps-utils": "npm:^8.9.0" + "@metamask/snaps-sdk": "npm:^6.17.0" + "@metamask/snaps-utils": "npm:^8.10.0" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.0.1" nanoid: "npm:^3.1.31" readable-stream: "npm:^3.6.2" - checksum: 10/233e6f0a930ac4f7e6e5a86e57640b137c409208379ab0405a9d3bf835668687751ae25a7fced140955272d700201cd254481093e7d7bb1359198699680f7bce + checksum: 10/7ee10aacc5b94f51a1e4414aef097509c35625a5bccf7d8b693a87ced85a466244a64471452ee2fa8ee8b0a953b8859c0703bfff30b2ac89c327561d62228e46 languageName: node linkType: hard @@ -6299,39 +6299,39 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-rpc-methods@npm:^11.10.0": - version: 11.10.0 - resolution: "@metamask/snaps-rpc-methods@npm:11.10.0" +"@metamask/snaps-rpc-methods@npm:^11.11.0": + version: 11.11.0 + resolution: "@metamask/snaps-rpc-methods@npm:11.11.0" dependencies: "@metamask/key-tree": "npm:^10.0.2" "@metamask/permission-controller": "npm:^11.0.5" "@metamask/rpc-errors": "npm:^7.0.2" - "@metamask/snaps-sdk": "npm:^6.16.0" - "@metamask/snaps-utils": "npm:^8.9.0" + "@metamask/snaps-sdk": "npm:^6.17.0" + "@metamask/snaps-utils": "npm:^8.10.0" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.0.1" "@noble/hashes": "npm:^1.3.1" luxon: "npm:^3.5.0" - checksum: 10/6a5d4efaa1ae7df4a5f3ea3e6917a1f837bb0458c576bed74ab769e6f73c78cd292776da94d9feb5dfc023baa88dae67442a0502462aa37138473af1f5cc91f3 + checksum: 10/cd88db675062e848a65dc4edcd26ed24184430af77ed58f3e7949879255cbf94d1b5fcc51127646494a239c390fe6398c2ffaa5f3d2f63e7f859225e2eeae832 languageName: node linkType: hard -"@metamask/snaps-sdk@npm:^6.16.0": - version: 6.16.0 - resolution: "@metamask/snaps-sdk@npm:6.16.0" +"@metamask/snaps-sdk@npm:^6.17.0": + version: 6.17.0 + resolution: "@metamask/snaps-sdk@npm:6.17.0" dependencies: "@metamask/key-tree": "npm:^10.0.2" "@metamask/providers": "npm:^18.3.1" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.0.1" - checksum: 10/eb76c00df13a845f2c19ec014b1439647adda1455486f4d4b0153e0690eccf7bc1ba0dc8a5472566f267eba722ef26bd99a15a49ed7c5273ff7b452f5d4b7600 + checksum: 10/96dd2555d354234ce6a5fbe00912e75fe86af482bb9df4c225927d125ca1e0e1880c0d806ce6ad097c6778d00d35d290204db17797685a8dd0bc63fc8f4a0991 languageName: node linkType: hard -"@metamask/snaps-utils@npm:^8.3.0, @metamask/snaps-utils@npm:^8.9.0, @metamask/snaps-utils@npm:^8.9.1": - version: 8.9.1 - resolution: "@metamask/snaps-utils@npm:8.9.1" +"@metamask/snaps-utils@npm:^8.10.0, @metamask/snaps-utils@npm:^8.3.0, @metamask/snaps-utils@npm:^8.9.0": + version: 8.10.0 + resolution: "@metamask/snaps-utils@npm:8.10.0" dependencies: "@babel/core": "npm:^7.23.2" "@babel/types": "npm:^7.23.0" @@ -6341,7 +6341,7 @@ __metadata: "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/slip44": "npm:^4.1.0" "@metamask/snaps-registry": "npm:^3.2.3" - "@metamask/snaps-sdk": "npm:^6.16.0" + "@metamask/snaps-sdk": "npm:^6.17.0" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.0.1" "@noble/hashes": "npm:^1.3.1" @@ -6356,7 +6356,7 @@ __metadata: semver: "npm:^7.5.4" ses: "npm:^1.1.0" validate-npm-package-name: "npm:^5.0.0" - checksum: 10/2917fbdccb23c831b613857c3a5738d34352697dae84173a3d24dbcb4c38edf23989fb089870187885dcf867a55ec731c1ac05e9809a7d6804dbe28c57e6da50 + checksum: 10/9c54c0d5632c9b01bacec3a497998e8111c6349fbee25452fd91acbbdc0e1230041b0b1cccba03799af3a14d973bd518c507bdf869f63ff95e875af0d6255aaf languageName: node linkType: hard @@ -26665,11 +26665,11 @@ __metadata: "@metamask/selected-network-controller": "npm:^19.0.0" "@metamask/signature-controller": "npm:^23.1.0" "@metamask/smart-transactions-controller": "npm:^16.0.1" - "@metamask/snaps-controllers": "npm:^9.18.0" - "@metamask/snaps-execution-environments": "npm:^6.13.0" - "@metamask/snaps-rpc-methods": "npm:^11.10.0" - "@metamask/snaps-sdk": "npm:^6.16.0" - "@metamask/snaps-utils": "npm:^8.9.1" + "@metamask/snaps-controllers": "npm:^9.19.0" + "@metamask/snaps-execution-environments": "npm:^6.14.0" + "@metamask/snaps-rpc-methods": "npm:^11.11.0" + "@metamask/snaps-sdk": "npm:^6.17.0" + "@metamask/snaps-utils": "npm:^8.10.0" "@metamask/solana-wallet-snap": "npm:^1.2.0" "@metamask/test-bundler": "npm:^1.0.0" "@metamask/test-dapp": "npm:9.0.0"