diff --git a/packages/chain-agnostic-permission/CHANGELOG.md b/packages/chain-agnostic-permission/CHANGELOG.md index a5cd521ccc..42974e9d06 100644 --- a/packages/chain-agnostic-permission/CHANGELOG.md +++ b/packages/chain-agnostic-permission/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- Add `Eip1193Compatible` property in `KnownSessionProperties` enum to support EIP-1193-style connections established through `connect-evm` ([#8731](https://github.com/MetaMask/core/pull/8731)) +- Set `sessionProperties: { 'eip1193-compatible': true }` in `getCaip25PermissionFromLegacyPermissions` so that legacy EIP-1193 permission requests are tagged as EIP-1193-compatible ([#8731](https://github.com/MetaMask/core/pull/8731)) + ### Changed - Bump `@metamask/permission-controller` from `^12.2.1` to `^13.1.0` ([#8317](https://github.com/MetaMask/core/pull/8317), [#8661](https://github.com/MetaMask/core/pull/8661), [#8722](https://github.com/MetaMask/core/pull/8722)) diff --git a/packages/chain-agnostic-permission/src/caip25Permission.test.ts b/packages/chain-agnostic-permission/src/caip25Permission.test.ts index 9cb20bc676..514488adc9 100644 --- a/packages/chain-agnostic-permission/src/caip25Permission.test.ts +++ b/packages/chain-agnostic-permission/src/caip25Permission.test.ts @@ -2001,7 +2001,9 @@ describe('getCaip25PermissionFromLegacyPermissions', () => { }, }, isMultichainOrigin: false, - sessionProperties: {}, + sessionProperties: { + 'eip1193-compatible': true, + }, }, }, ], @@ -2038,7 +2040,9 @@ describe('getCaip25PermissionFromLegacyPermissions', () => { }, }, isMultichainOrigin: false, - sessionProperties: {}, + sessionProperties: { + 'eip1193-compatible': true, + }, }, }, ], @@ -2076,7 +2080,9 @@ describe('getCaip25PermissionFromLegacyPermissions', () => { }, }, isMultichainOrigin: false, - sessionProperties: {}, + sessionProperties: { + 'eip1193-compatible': true, + }, }, }, ], @@ -2126,7 +2132,9 @@ describe('getCaip25PermissionFromLegacyPermissions', () => { }, }, isMultichainOrigin: false, - sessionProperties: {}, + sessionProperties: { + 'eip1193-compatible': true, + }, }, }, ], @@ -2163,7 +2171,9 @@ describe('getCaip25PermissionFromLegacyPermissions', () => { }, }, isMultichainOrigin: false, - sessionProperties: {}, + sessionProperties: { + 'eip1193-compatible': true, + }, }, }, ], @@ -2201,7 +2211,9 @@ describe('getCaip25PermissionFromLegacyPermissions', () => { }, }, isMultichainOrigin: false, - sessionProperties: {}, + sessionProperties: { + 'eip1193-compatible': true, + }, }, }, ], @@ -2251,7 +2263,9 @@ describe('getCaip25PermissionFromLegacyPermissions', () => { }, }, isMultichainOrigin: false, - sessionProperties: {}, + sessionProperties: { + 'eip1193-compatible': true, + }, }, }, ], @@ -2300,7 +2314,9 @@ describe('getCaip25PermissionFromLegacyPermissions', () => { }, }, isMultichainOrigin: false, - sessionProperties: {}, + sessionProperties: { + 'eip1193-compatible': true, + }, }, }, ], @@ -2349,7 +2365,9 @@ describe('getCaip25PermissionFromLegacyPermissions', () => { }, }, isMultichainOrigin: false, - sessionProperties: {}, + sessionProperties: { + 'eip1193-compatible': true, + }, }, }, ], diff --git a/packages/chain-agnostic-permission/src/caip25Permission.ts b/packages/chain-agnostic-permission/src/caip25Permission.ts index 0d1cc71eeb..2671fdd226 100644 --- a/packages/chain-agnostic-permission/src/caip25Permission.ts +++ b/packages/chain-agnostic-permission/src/caip25Permission.ts @@ -35,6 +35,7 @@ import { setPermittedEthChainIds, } from './operators/caip-permission-operator-permittedChains'; import { assertIsInternalScopesObject } from './scope/assert'; +import { KnownSessionProperties } from './scope/constants'; import { isSupportedAccount, isSupportedScopeString, @@ -632,7 +633,9 @@ export const getCaip25PermissionFromLegacyPermissions = accounts: [], }, }, - sessionProperties: {}, + sessionProperties: { + [KnownSessionProperties.Eip1193Compatible]: true, + }, isMultichainOrigin: false, }; diff --git a/packages/chain-agnostic-permission/src/scope/constants.test.ts b/packages/chain-agnostic-permission/src/scope/constants.test.ts index 9b3dafdc91..fbbe3d9138 100644 --- a/packages/chain-agnostic-permission/src/scope/constants.test.ts +++ b/packages/chain-agnostic-permission/src/scope/constants.test.ts @@ -65,6 +65,7 @@ describe('KnownSessionProperties', () => { expect(KnownSessionProperties).toMatchInlineSnapshot(` { "Bip122AccountChangedNotifications": "bip122_accountChanged_notifications", + "Eip1193Compatible": "eip1193-compatible", "SolanaAccountChangedNotifications": "solana_accountChanged_notifications", "TronAccountChangedNotifications": "tron_accountChanged_notifications", } @@ -74,6 +75,7 @@ describe('KnownSessionProperties', () => { describe('isKnownSessionPropertyValue', () => { it('should return true for known session property values', () => { + expect(isKnownSessionPropertyValue('eip1193-compatible')).toBe(true); expect( isKnownSessionPropertyValue('solana_accountChanged_notifications'), ).toBe(true); diff --git a/packages/chain-agnostic-permission/src/scope/constants.ts b/packages/chain-agnostic-permission/src/scope/constants.ts index bc31ebf963..1737948162 100644 --- a/packages/chain-agnostic-permission/src/scope/constants.ts +++ b/packages/chain-agnostic-permission/src/scope/constants.ts @@ -98,6 +98,7 @@ export const KnownNotifications: Record = * Session properties for known CAIP namespaces. */ export enum KnownSessionProperties { + Eip1193Compatible = 'eip1193-compatible', SolanaAccountChangedNotifications = 'solana_accountChanged_notifications', TronAccountChangedNotifications = 'tron_accountChanged_notifications', Bip122AccountChangedNotifications = 'bip122_accountChanged_notifications', diff --git a/packages/chain-agnostic-permission/src/scope/supported.test.ts b/packages/chain-agnostic-permission/src/scope/supported.test.ts index e3bddaac32..d55ec08b17 100644 --- a/packages/chain-agnostic-permission/src/scope/supported.test.ts +++ b/packages/chain-agnostic-permission/src/scope/supported.test.ts @@ -495,6 +495,9 @@ describe('Scope Support', () => { describe('isSupportedSessionProperty', () => { it('returns true for the session property', () => { + expect( + isSupportedSessionProperty(KnownSessionProperties.Eip1193Compatible), + ).toBe(true); expect( isSupportedSessionProperty( KnownSessionProperties.SolanaAccountChangedNotifications,