@metamask/multichain-account-service
Version:
Service to manage multichain accounts
62 lines • 2.43 kB
JavaScript
;
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