{"version":3,"file":"snap-utils.mjs","sourceRoot":"","sources":["../src/snap-utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,8BAA8B;AAE/C,OAAO,EAEL,iCAAiC,EACjC,wBAAwB,EACzB,sBAAkB;AAEnB;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAmB,EACnB,KAAY,EACZ,IAAgC;IAEhC,MAAM,IAAI,CAAC,OAAO,CAAC;QACjB,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE;YACN,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE;SACpB;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAmB;IAEnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE;YACN,MAAM,EAAE,wBAAwB,CAAC,mBAAmB;SACrD;KACF,CAAC,CAAC;IACH,MAAM,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import {\n  type KeyringEvent,\n  type KeyringEventPayload,\n} from '@metamask/keyring-api';\nimport type { SnapsProvider } from '@metamask/snaps-sdk';\nimport { assert } from '@metamask/superstruct';\n\nimport {\n  type GetSelectedAccountsResponse,\n  GetSelectedAccountsResponseStruct,\n  SnapManageAccountsMethod,\n} from './methods';\n\n/**\n * Emit a keyring event from a snap.\n *\n * @param snap - The global snap object.\n * @param event - The event name.\n * @param data - The event data.\n */\nexport async function emitSnapKeyringEvent<Event extends KeyringEvent>(\n  snap: SnapsProvider,\n  event: Event,\n  data: KeyringEventPayload<Event>,\n): Promise<void> {\n  await snap.request({\n    method: 'snap_manageAccounts',\n    params: {\n      method: event,\n      params: { ...data },\n    },\n  });\n}\n\n/**\n * Get the selected accounts from a snap.\n *\n * @param snap - The global snap object.\n * @returns The selected accounts.\n */\nexport async function getSelectedAccounts(\n  snap: SnapsProvider,\n): Promise<GetSelectedAccountsResponse> {\n  const response = await snap.request({\n    method: 'snap_manageAccounts',\n    params: {\n      method: SnapManageAccountsMethod.GetSelectedAccounts,\n    },\n  });\n  assert(response, GetSelectedAccountsResponseStruct);\n  return response;\n}\n"]}