{"version":3,"file":"messenger.cjs","sourceRoot":"","sources":["../../src/tests/messenger.ts"],"names":[],"mappings":";;;AAAA,+DAAsD;AAUtD;;;;GAIG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,2BAAS,EAGjB,CAAC;AACN,CAAC;AALD,4CAKC;AAED;;;;;GAKG;AACH,SAAgB,oCAAoC,CAClD,SAA8C;IAE9C,OAAO,SAAS,CAAC,aAAa,CAAC;QAC7B,IAAI,EAAE,0BAA0B;QAChC,aAAa,EAAE;YACb,+BAA+B;YAC/B,iCAAiC;YACjC,mCAAmC;SACpC;QACD,cAAc,EAAE;YACd,+BAA+B;YAC/B,wCAAwC;YACxC,2CAA2C;YAC3C,8BAA8B;YAC9B,+BAA+B;YAC/B,4BAA4B;SAC7B;KACF,CAAC,CAAC;AACL,CAAC;AAnBD,oFAmBC","sourcesContent":["import { Messenger } from '@metamask/base-controller';\n\nimport type {\n  AllowedActions,\n  AllowedEvents,\n  MultichainAccountServiceActions,\n  MultichainAccountServiceEvents,\n  MultichainAccountServiceMessenger,\n} from '../types';\n\n/**\n * Creates a new root messenger instance for testing.\n *\n * @returns A new Messenger instance.\n */\nexport function getRootMessenger() {\n  return new Messenger<\n    MultichainAccountServiceActions | AllowedActions,\n    MultichainAccountServiceEvents | AllowedEvents\n  >();\n}\n\n/**\n * Retrieves a restricted messenger for the MultichainAccountService.\n *\n * @param messenger - The root messenger instance. Defaults to a new Messenger created by getRootMessenger().\n * @returns The restricted messenger for the MultichainAccountService.\n */\nexport function getMultichainAccountServiceMessenger(\n  messenger: ReturnType<typeof getRootMessenger>,\n): MultichainAccountServiceMessenger {\n  return messenger.getRestricted({\n    name: 'MultichainAccountService',\n    allowedEvents: [\n      'KeyringController:stateChange',\n      'AccountsController:accountAdded',\n      'AccountsController:accountRemoved',\n    ],\n    allowedActions: [\n      'AccountsController:getAccount',\n      'AccountsController:getAccountByAddress',\n      'AccountsController:listMultichainAccounts',\n      'SnapController:handleRequest',\n      'KeyringController:withKeyring',\n      'KeyringController:getState',\n    ],\n  });\n}\n"]}