UNPKG

@metamask/multichain-account-service

Version:
62 lines 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getMultichainAccountServiceMessenger = exports.getRootMessenger = void 0; const messenger_1 = require("@metamask/messenger"); /** * Creates and returns a root messenger for testing * * @returns A messenger instance */ function getRootMessenger() { return new messenger_1.Messenger({ namespace: messenger_1.MOCK_ANY_NAMESPACE, captureException: jest.fn(), }); } exports.getRootMessenger = getRootMessenger; /** * Retrieves a restricted messenger for the MultichainAccountService. * * @param rootMessenger - The root messenger instance. Defaults to a new Messenger created by getRootMessenger(). * @param extra - Extra messenger options. * @param extra.actions - Extra actions to delegate. * @param extra.events - Extra events to delegate. * @returns The restricted messenger for the MultichainAccountService. */ function getMultichainAccountServiceMessenger(rootMessenger, extra) { const messenger = new messenger_1.Messenger({ namespace: 'MultichainAccountService', parent: rootMessenger, }); rootMessenger.delegate({ messenger, actions: [ 'AccountsController:getAccount', 'AccountsController:getAccountByAddress', 'AccountsController:listMultichainAccounts', 'SnapController:handleRequest', 'KeyringController:withKeyring', 'KeyringController:withKeyringV2', 'KeyringController:getState', 'KeyringController:getKeyringsByType', 'KeyringController:addNewKeyring', 'NetworkController:findNetworkClientIdByChainId', 'NetworkController:getNetworkClientById', 'KeyringController:createNewVaultAndKeychain', 'KeyringController:createNewVaultAndRestore', 'AccountsController:getAccounts', 'KeyringController:removeAccount', 'SnapAccountService:ensureReady', 'SnapAccountService:getCapabilities', ...(extra?.actions ?? []), ], events: [ 'AccountsController:accountAdded', 'AccountsController:accountRemoved', ...(extra?.events ?? []), ], }); return messenger; } exports.getMultichainAccountServiceMessenger = getMultichainAccountServiceMessenger; //# sourceMappingURL=messenger.cjs.map