{"version":3,"file":"messenger.cjs","sourceRoot":"","sources":["../../src/tests/messenger.ts"],"names":[],"mappings":";;;AAAA,mDAAoE;AAqBpE;;;;GAIG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,qBAAS,CAAC;QACnB,SAAS,EAAE,8BAAkB;QAC7B,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;KAC5B,CAAC,CAAC;AACL,CAAC;AALD,4CAKC;AAED;;;;;;;;GAQG;AACH,SAAgB,oCAAoC,CAClD,aAA4B,EAC5B,KAGC;IAED,MAAM,SAAS,GAAG,IAAI,qBAAS,CAK7B;QACA,SAAS,EAAE,0BAA0B;QACrC,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,aAAa,CAAC,QAAQ,CAAC;QACrB,SAAS;QACT,OAAO,EAAE;YACP,+BAA+B;YAC/B,wCAAwC;YACxC,2CAA2C;YAC3C,8BAA8B;YAC9B,+BAA+B;YAC/B,iCAAiC;YACjC,4BAA4B;YAC5B,qCAAqC;YACrC,iCAAiC;YACjC,gDAAgD;YAChD,wCAAwC;YACxC,6CAA6C;YAC7C,4CAA4C;YAC5C,gCAAgC;YAChC,iCAAiC;YACjC,gCAAgC;YAChC,oCAAoC;YACpC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;SAC1B;QACD,MAAM,EAAE;YACN,iCAAiC;YACjC,mCAAmC;YACnC,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;SACzB;KACF,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AA7CD,oFA6CC","sourcesContent":["import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger';\nimport type {\n  MessengerActions,\n  MessengerEvents,\n  MockAnyNamespace,\n} from '@metamask/messenger';\n\nimport type { MultichainAccountServiceMessenger } from '../types';\n\nexport type AllMultichainAccountServiceActions =\n  MessengerActions<MultichainAccountServiceMessenger>;\n\nexport type AllMultichainAccountServiceEvents =\n  MessengerEvents<MultichainAccountServiceMessenger>;\n\nexport type RootMessenger = Messenger<\n  MockAnyNamespace,\n  AllMultichainAccountServiceActions,\n  AllMultichainAccountServiceEvents\n>;\n\n/**\n * Creates and returns a root messenger for testing\n *\n * @returns A messenger instance\n */\nexport function getRootMessenger(): RootMessenger {\n  return new Messenger({\n    namespace: MOCK_ANY_NAMESPACE,\n    captureException: jest.fn(),\n  });\n}\n\n/**\n * Retrieves a restricted messenger for the MultichainAccountService.\n *\n * @param rootMessenger - The root messenger instance. Defaults to a new Messenger created by getRootMessenger().\n * @param extra - Extra messenger options.\n * @param extra.actions - Extra actions to delegate.\n * @param extra.events - Extra events to delegate.\n * @returns The restricted messenger for the MultichainAccountService.\n */\nexport function getMultichainAccountServiceMessenger(\n  rootMessenger: RootMessenger,\n  extra?: {\n    actions?: AllMultichainAccountServiceActions['type'][];\n    events?: AllMultichainAccountServiceEvents['type'][];\n  },\n): MultichainAccountServiceMessenger {\n  const messenger = new Messenger<\n    'MultichainAccountService',\n    AllMultichainAccountServiceActions,\n    AllMultichainAccountServiceEvents,\n    RootMessenger\n  >({\n    namespace: 'MultichainAccountService',\n    parent: rootMessenger,\n  });\n  rootMessenger.delegate({\n    messenger,\n    actions: [\n      'AccountsController:getAccount',\n      'AccountsController:getAccountByAddress',\n      'AccountsController:listMultichainAccounts',\n      'SnapController:handleRequest',\n      'KeyringController:withKeyring',\n      'KeyringController:withKeyringV2',\n      'KeyringController:getState',\n      'KeyringController:getKeyringsByType',\n      'KeyringController:addNewKeyring',\n      'NetworkController:findNetworkClientIdByChainId',\n      'NetworkController:getNetworkClientById',\n      'KeyringController:createNewVaultAndKeychain',\n      'KeyringController:createNewVaultAndRestore',\n      'AccountsController:getAccounts',\n      'KeyringController:removeAccount',\n      'SnapAccountService:ensureReady',\n      'SnapAccountService:getCapabilities',\n      ...(extra?.actions ?? []),\n    ],\n    events: [\n      'AccountsController:accountAdded',\n      'AccountsController:accountRemoved',\n      ...(extra?.events ?? []),\n    ],\n  });\n  return messenger;\n}\n"]}