Skip to content

Commit

Permalink
Integrate SubjectMetadataController
Browse files Browse the repository at this point in the history
  • Loading branch information
gantunesr committed Mar 19, 2023
1 parent 639b9bd commit e03b85e
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 10 deletions.
25 changes: 16 additions & 9 deletions app/core/Engine.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import { ApprovalController } from '@metamask/approval-controller';
import { PermissionController } from '@metamask/permission-controller';
import SwapsController, { swapsUtils } from '@metamask/swaps-controller';
import { SnapController } from '@metamask/snaps-controllers';
import { SubjectMetadataController } from '@metamask/subject-metadata-controller';
import AsyncStorage from '@react-native-async-storage/async-storage';
import { MetaMaskKeyring as QRHardwareKeyring } from '@keystonehq/metamask-airgapped-keyring';
import Encryptor from './Encryptor';
Expand Down Expand Up @@ -362,20 +363,23 @@ class Engine {
unrestrictedMethods,
});

// const subjectMetadataController = new SubjectMetadataController({
// messenger: this.controllerMessenger.getRestricted({
// name: 'SubjectMetadataController',
// allowedActions: [`${this.permissionController.name}:hasPermissions`],
// }),
// state: initState.SubjectMetadataController,
// subjectCacheLimit: 100,
// });
const subjectMetadataController = new SubjectMetadataController({
messenger: this.controllerMessenger.getRestricted({
name: 'SubjectMetadataController',
allowedActions: [`${permissionController.name}:hasPermissions`],
}),
state: initialState.SubjectMetadataController || {},
subjectCacheLimit: 100,
});

this.setupSnapProvider = (snapId, connectionStream) => {
console.log(
'[ENGINE LOG] Engine+setupSnapProvider: Setup stream for Snap',
snapId,
);
// TO DO:
// Develop a simpler getRpcMethodMiddleware object for SnapBridge
// Consider developing an abstract class to derived custom implementations for each use case
const bridge = new SnapBridge({
snapId,
connectionStream,
Expand Down Expand Up @@ -431,7 +435,7 @@ class Engine {
`${permissionController.name}:revokePermissions`,
`${permissionController.name}:revokePermissionForAllSubjects`,
`${permissionController.name}:grantPermissions`,
'SubjectMetadataController:getSubjectMetadata',
`${subjectMetadataController.name}:getSubjectMetadata`,
'ExecutionService:executeSnap',
'ExecutionService:getRpcRequestHandler',
'ExecutionService:terminateSnap',
Expand Down Expand Up @@ -593,6 +597,7 @@ class Engine {
approvalController,
permissionController,
snapController,
subjectMetadataController,
];

// set initial state
Expand Down Expand Up @@ -1061,6 +1066,7 @@ export default {
NftDetectionController,
SnapController,
PermissionController,
SubjectMetadataController,
} = instance.datamodel.state;

// normalize `null` currencyRate to `0`
Expand Down Expand Up @@ -1096,6 +1102,7 @@ export default {
NftDetectionController,
SnapController,
PermissionController,
SubjectMetadataController,
};
},
get datamodel() {
Expand Down
4 changes: 4 additions & 0 deletions app/core/EngineService/EngineService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,10 @@ class EngineService {
name: 'PermissionController',
key: `${engine.context.PermissionController.name}:stateChange`,
},
{
name: 'subjectMetadataController',
key: `${engine.context.SubjectMetadataController.name}:stateChange`,
},
];

engine?.datamodel?.subscribe?.(() => {
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@
"@metamask/sdk-communication-layer": "^0.1.0",
"@metamask/snaps-controllers": "0.26.2",
"@metamask/snaps-utils": "0.26.2",
"@metamask/subject-metadata-controller": "^1.0.0",
"@metamask/swaps-controller": "^6.8.0",
"@metamask/transaction-controller": "^2.0.0",
"@metamask/utils": "^5.0.0",
Expand Down
2 changes: 1 addition & 1 deletion yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4703,7 +4703,7 @@
ses "^0.17.0"
superstruct "^0.16.7"

"@metamask/subject-metadata-controller@^1.0.1":
"@metamask/subject-metadata-controller@^1.0.0", "@metamask/subject-metadata-controller@^1.0.1":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@metamask/subject-metadata-controller/-/subject-metadata-controller-1.0.2.tgz#35f571231cf99889bd413d683f8b7459adc655fb"
integrity sha512-zOtgtS+NHnfhrzyaxlMi9iR6Wo4qm04TWp7c/bMFjCI8XY/Rs1VoJegxR/481ELwbzBNzGwnEc/TwSW2qBi39A==
Expand Down

0 comments on commit e03b85e

Please sign in to comment.