Skip to content

Commit daa4941

Browse files
authored
Merge branch 'main' into ogp/2370
2 parents f5ede2c + 1348d2e commit daa4941

File tree

7 files changed

+91
-67
lines changed

7 files changed

+91
-67
lines changed

app/core/Engine/controllers/snaps/snap-controller-init.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ describe('SnapControllerInit', () => {
5757

5858
const controllerMock = jest.mocked(SnapController);
5959
expect(controllerMock).toHaveBeenCalledWith({
60-
dynamicPermissions: expect.any(Array),
6160
messenger: expect.any(Object),
6261
state: undefined,
6362
clientCryptography: {

app/core/Engine/controllers/snaps/snap-controller-init.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import { KeyringTypes } from '@metamask/keyring-controller';
2020
import { selectBasicFunctionalityEnabled } from '../../../../selectors/settings';
2121
import { store } from '../../../../store';
2222
import PREINSTALLED_SNAPS from '../../../../lib/snaps/preinstalled-snaps';
23-
import { Caip25EndowmentPermissionName } from '@metamask/chain-agnostic-permission';
2423
import { MetaMetrics } from '../../../Analytics';
2524
import { MetricsEventBuilder } from '../../../Analytics/MetricsEventBuilder';
2625

@@ -86,7 +85,6 @@ export const snapControllerInit: ControllerInitFunction<
8685
}
8786

8887
const controller = new SnapController({
89-
dynamicPermissions: [Caip25EndowmentPermissionName],
9088
environmentEndowmentPermissions: Object.values(EndowmentPermissions),
9189
excludedPermissions: {
9290
...ExcludedSnapPermissions,

app/core/Snaps/SnapsMethodMiddleware.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import { Json } from '@metamask/utils';
3737
import { SchedulableBackgroundEvent } from '@metamask/snaps-controllers';
3838
import { endTrace, trace } from '../../util/trace';
3939
import { AppState } from 'react-native';
40+
import { getVersion } from 'react-native-device-info';
4041

4142
export function getSnapIdFromRequest(
4243
request: Record<string, unknown>,
@@ -195,6 +196,16 @@ const snapMethodMiddlewareBuilder = (
195196
AppState.currentState === 'active' &&
196197
engineContext.KeyringController.isUnlocked(),
197198
getIsLocked: () => !engineContext.KeyringController.isUnlocked(),
199+
getVersion: () => {
200+
const baseVersion = getVersion();
201+
const buildType = process.env.METAMASK_BUILD_TYPE;
202+
203+
if (buildType === 'main' || buildType === 'qa') {
204+
return baseVersion;
205+
}
206+
207+
return `${baseVersion}-${buildType}.0`;
208+
},
198209
getEntropySources: () => {
199210
const state = controllerMessenger.call('KeyringController:getState');
200211

e2e/pages/Browser/TestSnaps.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,44 @@ class TestSnaps {
161161
}, options);
162162
}
163163

164+
async checkClientStatus(
165+
{
166+
clientVersion: expectedClientVersion,
167+
...expectedStatus
168+
}: Record<string, Json>,
169+
options: Partial<RetryOptions> = {
170+
timeout: 5_000,
171+
interval: 100,
172+
},
173+
) {
174+
const webElement = await Matchers.getElementByWebID(
175+
BrowserViewSelectorsIDs.BROWSER_WEBVIEW_ID,
176+
TestSnapResultSelectorWebIDS.clientStatusResultSpan,
177+
);
178+
179+
return await Utilities.executeWithRetry(async () => {
180+
const actualText = await webElement.getText();
181+
let actualStatusWithVersion;
182+
try {
183+
actualStatusWithVersion = JSON.parse(actualText);
184+
} catch (error) {
185+
throw new Error(
186+
`Failed to parse JSON from client status span: ${actualText}`,
187+
);
188+
}
189+
190+
const { clientVersion: actualClientVersion, ...actualStatus } =
191+
actualStatusWithVersion;
192+
193+
await Assertions.checkIfJsonEqual(actualStatus, expectedStatus);
194+
if (!actualClientVersion.startsWith(expectedClientVersion)) {
195+
throw new Error(
196+
`Client version mismatch: Expected version to start with "${expectedClientVersion}", got "${actualClientVersion}".`,
197+
);
198+
}
199+
}, options);
200+
}
201+
164202
async navigateToTestSnap(): Promise<void> {
165203
await Browser.tapUrlInputBox();
166204
await Browser.navigateToURL(TEST_SNAPS_URL);

e2e/specs/snaps/test-snap-client-status.spec.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import FixtureBuilder from '../../framework/fixtures/FixtureBuilder';
44
import { withFixtures } from '../../framework/fixtures/FixtureHelper';
55
import TabBarComponent from '../../pages/wallet/TabBarComponent';
66
import TestSnaps from '../../pages/Browser/TestSnaps';
7+
import sdkPackageJson from '@metamask/snaps-sdk/package.json';
8+
import packageJson from '../../../package.json';
79

810
jest.setTimeout(150_000);
911

@@ -33,9 +35,11 @@ describe(FlaskBuildTests('Client Status Snap Tests'), () => {
3335
},
3436
async () => {
3537
await TestSnaps.tapButton('sendClientStatusButton');
36-
await TestSnaps.checkResultJson('clientStatusResultSpan', {
38+
await TestSnaps.checkClientStatus({
3739
locked: false,
3840
active: true,
41+
clientVersion: packageJson.version,
42+
platformVersion: sdkPackageJson.version,
3943
});
4044
},
4145
);

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@
256256
"@metamask/phishing-controller": "^15.0.0",
257257
"@metamask/post-message-stream": "^10.0.0",
258258
"@metamask/preferences-controller": "^21.0.0",
259-
"@metamask/preinstalled-example-snap": "^0.7.1",
259+
"@metamask/preinstalled-example-snap": "^0.7.2",
260260
"@metamask/profile-sync-controller": "^26.0.0",
261261
"@metamask/react-native-acm": "^1.0.1",
262262
"@metamask/react-native-actionsheet": "2.4.2",
@@ -275,10 +275,10 @@
275275
"@metamask/signature-controller": "^35.0.0",
276276
"@metamask/slip44": "^4.2.0",
277277
"@metamask/smart-transactions-controller": "^20.1.0",
278-
"@metamask/snaps-controllers": "^16.0.0",
279-
"@metamask/snaps-execution-environments": "^10.2.2",
280-
"@metamask/snaps-rpc-methods": "^14.0.0",
281-
"@metamask/snaps-sdk": "^10.0.0",
278+
"@metamask/snaps-controllers": "^16.1.0",
279+
"@metamask/snaps-execution-environments": "^10.2.3",
280+
"@metamask/snaps-rpc-methods": "^14.1.0",
281+
"@metamask/snaps-sdk": "^10.1.0",
282282
"@metamask/snaps-utils": "^11.6.1",
283283
"@metamask/solana-wallet-snap": "^2.4.6",
284284
"@metamask/solana-wallet-standard": "^0.6.0",

yarn.lock

Lines changed: 32 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -7036,17 +7036,6 @@ __metadata:
70367036
languageName: node
70377037
linkType: hard
70387038

7039-
"@metamask/base-controller@npm:^8.0.1":
7040-
version: 8.4.2
7041-
resolution: "@metamask/base-controller@npm:8.4.2"
7042-
dependencies:
7043-
"@metamask/messenger": "npm:^0.3.0"
7044-
"@metamask/utils": "npm:^11.8.1"
7045-
immer: "npm:^9.0.6"
7046-
checksum: 10/e5c4d97a35952072dc8e93c90a334ea60a8d9faa7c15584b5ce8f60b151cf56a7dd5304cb8549b183cdd61d53421b45e3c4688170fcd0a3e2c6a184aeb942067
7047-
languageName: node
7048-
linkType: hard
7049-
70507039
"@metamask/base-controller@npm:^9.0.0":
70517040
version: 9.0.0
70527041
resolution: "@metamask/base-controller@npm:9.0.0"
@@ -8188,21 +8177,6 @@ __metadata:
81888177
languageName: node
81898178
linkType: hard
81908179

8191-
"@metamask/phishing-controller@npm:^13.1.0":
8192-
version: 13.1.0
8193-
resolution: "@metamask/phishing-controller@npm:13.1.0"
8194-
dependencies:
8195-
"@metamask/base-controller": "npm:^8.0.1"
8196-
"@metamask/controller-utils": "npm:^11.11.0"
8197-
"@noble/hashes": "npm:^1.4.0"
8198-
"@types/punycode": "npm:^2.1.0"
8199-
ethereum-cryptography: "npm:^2.1.2"
8200-
fastest-levenshtein: "npm:^1.0.16"
8201-
punycode: "npm:^2.1.1"
8202-
checksum: 10/c62f71291736dfd635cc69b2d422687d8d610591a5e1cd9a6b4806cdc19221a72fe7699c0cabe0a2a108b49c3cc4dcb88a5b283fba374fe13e54d5813fb77902
8203-
languageName: node
8204-
linkType: hard
8205-
82068180
"@metamask/phishing-controller@npm:^15.0.0":
82078181
version: 15.0.0
82088182
resolution: "@metamask/phishing-controller@npm:15.0.0"
@@ -8260,12 +8234,12 @@ __metadata:
82608234
languageName: node
82618235
linkType: hard
82628236

8263-
"@metamask/preinstalled-example-snap@npm:^0.7.1":
8264-
version: 0.7.1
8265-
resolution: "@metamask/preinstalled-example-snap@npm:0.7.1"
8237+
"@metamask/preinstalled-example-snap@npm:^0.7.2":
8238+
version: 0.7.2
8239+
resolution: "@metamask/preinstalled-example-snap@npm:0.7.2"
82668240
dependencies:
8267-
"@metamask/snaps-sdk": "npm:^9.3.0"
8268-
checksum: 10/6b8a0e81de0cb6591d8379084711a5b110e967355b8151a8e23c03c5d62d735c1c19f0c6537b4e70f72ae57207b962630dfd47d2722c15b0f5e09bec807261ce
8241+
"@metamask/snaps-sdk": "npm:^10.1.0"
8242+
checksum: 10/9605e6f2d120e85ee0ec6b43ff7d407ff07b57a4b790312ff6b176e2eb306a4c997acca034e2612155f327e12bdccdf258291e16b406d98658b45092cb4b63a3
82698243
languageName: node
82708244
linkType: hard
82718245

@@ -8598,9 +8572,9 @@ __metadata:
85988572
languageName: node
85998573
linkType: hard
86008574

8601-
"@metamask/snaps-controllers@npm:^16.0.0":
8602-
version: 16.0.0
8603-
resolution: "@metamask/snaps-controllers@npm:16.0.0"
8575+
"@metamask/snaps-controllers@npm:^16.1.0":
8576+
version: 16.1.0
8577+
resolution: "@metamask/snaps-controllers@npm:16.1.0"
86048578
dependencies:
86058579
"@metamask/approval-controller": "npm:^8.0.0"
86068580
"@metamask/base-controller": "npm:^9.0.0"
@@ -8609,13 +8583,13 @@ __metadata:
86098583
"@metamask/key-tree": "npm:^10.1.1"
86108584
"@metamask/messenger": "npm:^0.3.0"
86118585
"@metamask/object-multiplex": "npm:^2.1.0"
8612-
"@metamask/permission-controller": "npm:^12.0.0"
8613-
"@metamask/phishing-controller": "npm:^13.1.0"
8586+
"@metamask/permission-controller": "npm:^12.1.0"
8587+
"@metamask/phishing-controller": "npm:^15.0.0"
86148588
"@metamask/post-message-stream": "npm:^10.0.0"
86158589
"@metamask/rpc-errors": "npm:^7.0.3"
86168590
"@metamask/snaps-registry": "npm:^3.2.3"
8617-
"@metamask/snaps-rpc-methods": "npm:^14.0.0"
8618-
"@metamask/snaps-sdk": "npm:^10.0.0"
8591+
"@metamask/snaps-rpc-methods": "npm:^14.1.0"
8592+
"@metamask/snaps-sdk": "npm:^10.1.0"
86198593
"@metamask/snaps-utils": "npm:^11.6.1"
86208594
"@metamask/utils": "npm:^11.8.1"
86218595
"@xstate/fsm": "npm:^2.0.0"
@@ -8632,29 +8606,29 @@ __metadata:
86328606
semver: "npm:^7.5.4"
86338607
tar-stream: "npm:^3.1.7"
86348608
peerDependencies:
8635-
"@metamask/snaps-execution-environments": ^10.2.2
8609+
"@metamask/snaps-execution-environments": ^10.2.3
86368610
peerDependenciesMeta:
86378611
"@metamask/snaps-execution-environments":
86388612
optional: true
8639-
checksum: 10/e5191fe2b41f437720b6263a394adf6e0ba6060279350b0eba902887d7137222e4bb54e8c6b0b052f587dd73254f5d61f6ea37bedf349ec44c60f76535f8afd8
8613+
checksum: 10/9af230904002608d73de7d9b87e9e63dda304da2f68fc1cf813b0d43a222edb1d359ba82921f7f88b1e066b39c72a7a73fab90c824907e0b3bcfe84de6b1bc46
86408614
languageName: node
86418615
linkType: hard
86428616

8643-
"@metamask/snaps-execution-environments@npm:^10.2.2":
8644-
version: 10.2.2
8645-
resolution: "@metamask/snaps-execution-environments@npm:10.2.2"
8617+
"@metamask/snaps-execution-environments@npm:^10.2.3":
8618+
version: 10.2.3
8619+
resolution: "@metamask/snaps-execution-environments@npm:10.2.3"
86468620
dependencies:
86478621
"@metamask/json-rpc-engine": "npm:^10.1.0"
86488622
"@metamask/object-multiplex": "npm:^2.1.0"
86498623
"@metamask/post-message-stream": "npm:^10.0.0"
86508624
"@metamask/providers": "npm:^22.1.1"
86518625
"@metamask/rpc-errors": "npm:^7.0.3"
8652-
"@metamask/snaps-sdk": "npm:^10.0.0"
8653-
"@metamask/snaps-utils": "npm:^11.6.0"
8626+
"@metamask/snaps-sdk": "npm:^10.1.0"
8627+
"@metamask/snaps-utils": "npm:^11.6.1"
86548628
"@metamask/superstruct": "npm:^3.2.1"
86558629
"@metamask/utils": "npm:^11.8.1"
86568630
readable-stream: "npm:^3.6.2"
8657-
checksum: 10/b3c4dd386e6771c8114150965a145c3c0aa2da49309d4d6ce05f7780ff718232514833b37a84a1c1a8b2d0bc68ed6d98be23a8585af593b196ecd4dedd029774
8631+
checksum: 10/da92c33942e1422de8a24b1f5885a037d3d4cbd33f802a7493c0f05b1ad2cce3721576288e2caa7a2369a7348d6b031b24f47087a04f2a7c0b0ac6eb5b01cc27
86588632
languageName: node
86598633
linkType: hard
86608634

@@ -8670,19 +8644,19 @@ __metadata:
86708644
languageName: node
86718645
linkType: hard
86728646

8673-
"@metamask/snaps-rpc-methods@npm:^14.0.0":
8674-
version: 14.0.0
8675-
resolution: "@metamask/snaps-rpc-methods@npm:14.0.0"
8647+
"@metamask/snaps-rpc-methods@npm:^14.1.0":
8648+
version: 14.1.0
8649+
resolution: "@metamask/snaps-rpc-methods@npm:14.1.0"
86768650
dependencies:
86778651
"@metamask/key-tree": "npm:^10.1.1"
8678-
"@metamask/permission-controller": "npm:^12.0.0"
8652+
"@metamask/permission-controller": "npm:^12.1.0"
86798653
"@metamask/rpc-errors": "npm:^7.0.3"
8680-
"@metamask/snaps-sdk": "npm:^10.0.0"
8654+
"@metamask/snaps-sdk": "npm:^10.1.0"
86818655
"@metamask/snaps-utils": "npm:^11.6.1"
86828656
"@metamask/superstruct": "npm:^3.2.1"
86838657
"@metamask/utils": "npm:^11.8.1"
86848658
"@noble/hashes": "npm:^1.7.1"
8685-
checksum: 10/74fd793c3e477a1ccc769c39a5a9e38c4ffe7fa061d8511c6fdf62af0d60b7328ea1349a1342276cb47cacbf04168a96fca1496ee3436c712f7e1e05da2b8e5e
8659+
checksum: 10/6502f406f778baa0e1307b8e5b0bf3746e554a114e5bd9289d4814472a794fd84cfe32700bad162afef8484384f2f0012a81fc21360e5d408553804f253e7e69
86868660
languageName: node
86878661
linkType: hard
86888662

@@ -8699,7 +8673,7 @@ __metadata:
86998673
languageName: node
87008674
linkType: hard
87018675

8702-
"@metamask/snaps-utils@npm:^11.0.0, @metamask/snaps-utils@npm:^11.6.0, @metamask/snaps-utils@npm:^11.6.1":
8676+
"@metamask/snaps-utils@npm:^11.0.0, @metamask/snaps-utils@npm:^11.6.1":
87038677
version: 11.6.1
87048678
resolution: "@metamask/snaps-utils@npm:11.6.1"
87058679
dependencies:
@@ -34324,7 +34298,7 @@ __metadata:
3432434298
"@metamask/phishing-controller": "npm:^15.0.0"
3432534299
"@metamask/post-message-stream": "npm:^10.0.0"
3432634300
"@metamask/preferences-controller": "npm:^21.0.0"
34327-
"@metamask/preinstalled-example-snap": "npm:^0.7.1"
34301+
"@metamask/preinstalled-example-snap": "npm:^0.7.2"
3432834302
"@metamask/profile-sync-controller": "npm:^26.0.0"
3432934303
"@metamask/providers": "npm:^18.3.1"
3433034304
"@metamask/react-native-acm": "npm:^1.0.1"
@@ -34344,10 +34318,10 @@ __metadata:
3434434318
"@metamask/signature-controller": "npm:^35.0.0"
3434534319
"@metamask/slip44": "npm:^4.2.0"
3434634320
"@metamask/smart-transactions-controller": "npm:^20.1.0"
34347-
"@metamask/snaps-controllers": "npm:^16.0.0"
34348-
"@metamask/snaps-execution-environments": "npm:^10.2.2"
34349-
"@metamask/snaps-rpc-methods": "npm:^14.0.0"
34350-
"@metamask/snaps-sdk": "npm:^10.0.0"
34321+
"@metamask/snaps-controllers": "npm:^16.1.0"
34322+
"@metamask/snaps-execution-environments": "npm:^10.2.3"
34323+
"@metamask/snaps-rpc-methods": "npm:^14.1.0"
34324+
"@metamask/snaps-sdk": "npm:^10.1.0"
3435134325
"@metamask/snaps-utils": "npm:^11.6.1"
3435234326
"@metamask/solana-wallet-snap": "npm:^2.4.6"
3435334327
"@metamask/solana-wallet-standard": "npm:^0.6.0"

0 commit comments

Comments
 (0)