mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-22 17:33:23 +01:00
[FLASK] Add snap cronjobs (#16239)
* Add Cronjob controller configuration * Add Cronjob permission icon and description * Add lint fix changes * Add missing action to the allow-list * Fix permission * Fix icon and message Co-authored-by: Frederik Bolding <frederik.bolding@gmail.com>
This commit is contained in:
parent
aba3b94c1a
commit
5e746dcc2f
4
app/_locales/en/messages.json
generated
4
app/_locales/en/messages.json
generated
@ -2660,6 +2660,10 @@
|
||||
"message": "Connect to the $1 Snap.",
|
||||
"description": "The description for the `wallet_snap_*` permission. $1 is the name of the Snap."
|
||||
},
|
||||
"permission_cronjob": {
|
||||
"message": "Schedule and execute periodic actions.",
|
||||
"description": "The description for the `snap_cronjob` permission"
|
||||
},
|
||||
"permission_customConfirmation": {
|
||||
"message": "Display a confirmation in MetaMask.",
|
||||
"description": "The description for the `snap_confirm` permission"
|
||||
|
@ -49,6 +49,7 @@ import {
|
||||
import SmartTransactionsController from '@metamask/smart-transactions-controller';
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||
import {
|
||||
CronjobController,
|
||||
SnapController,
|
||||
IframeExecutionService,
|
||||
} from '@metamask/snap-controllers';
|
||||
@ -753,6 +754,24 @@ export default class MetamaskController extends EventEmitter {
|
||||
},
|
||||
},
|
||||
});
|
||||
// --- Snaps Cronjob Controller configuration
|
||||
const cronjobControllerMessenger = this.controllerMessenger.getRestricted({
|
||||
name: 'CronjobController',
|
||||
allowedEvents: [
|
||||
'SnapController:snapInstalled',
|
||||
'SnapController:snapUpdated',
|
||||
'SnapController:snapRemoved',
|
||||
],
|
||||
allowedActions: [
|
||||
`${this.permissionController.name}:getPermissions`,
|
||||
'SnapController:handleRequest',
|
||||
'SnapController:getAll',
|
||||
],
|
||||
});
|
||||
this.cronjobController = new CronjobController({
|
||||
state: initState.CronjobController,
|
||||
messenger: cronjobControllerMessenger,
|
||||
});
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
this.detectTokensController = new DetectTokensController({
|
||||
preferences: this.preferencesController,
|
||||
@ -1042,6 +1061,7 @@ export default class MetamaskController extends EventEmitter {
|
||||
CollectiblesController: this.collectiblesController,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||
SnapController: this.snapController,
|
||||
CronjobController: this.cronjobController,
|
||||
NotificationController: this.notificationController,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
});
|
||||
@ -1083,6 +1103,7 @@ export default class MetamaskController extends EventEmitter {
|
||||
CollectiblesController: this.collectiblesController,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||
SnapController: this.snapController,
|
||||
CronjobController: this.cronjobController,
|
||||
NotificationController: this.notificationController,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
},
|
||||
|
@ -24,12 +24,10 @@ export const EndowmentPermissions = Object.freeze({
|
||||
'endowment:network-access': 'endowment:network-access',
|
||||
'endowment:long-running': 'endowment:long-running',
|
||||
'endowment:transaction-insight': 'endowment:transaction-insight',
|
||||
'endowment:cronjob': 'endowment:cronjob',
|
||||
} as const);
|
||||
|
||||
// Methods / permissions in external packages that we are temporarily excluding.
|
||||
export const ExcludedSnapPermissions = new Set(['snap_dialog']);
|
||||
export const ExcludedSnapEndowments = new Set([
|
||||
'endowment:keyring',
|
||||
'endowment:cronjob',
|
||||
]);
|
||||
export const ExcludedSnapEndowments = new Set(['endowment:keyring']);
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
|
@ -102,6 +102,11 @@ const PERMISSION_DESCRIPTIONS = deepFreeze({
|
||||
leftIcon: 'fas fa-info',
|
||||
rightIcon: null,
|
||||
},
|
||||
[EndowmentPermissions['endowment:cronjob']]: {
|
||||
label: (t) => t('permission_cronjob'),
|
||||
leftIcon: 'fas fa-clock',
|
||||
rightIcon: null,
|
||||
},
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
[UNKNOWN_PERMISSION]: {
|
||||
label: (t, permissionName) =>
|
||||
|
Loading…
Reference in New Issue
Block a user