{"version":3,"file":"utils.cjs","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAaA,kEAQC;AAED,0EAgBC;AAED,sDAKC;AA7CD,2EAAiH;AACjH,uCAAoF;AAEvE,QAAA,qBAAqB,GAChC,wHAAwH,CAAC;AAE3H;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,aAA4B;IACtE,MAAM,KAAK,GAAG,6BAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAExD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC,cAAe,CAAC;AACtC,CAAC;AAED,SAAgB,+BAA+B,CAAC,OAAsC;IACpF,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,6CAAoB,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO,aAAK,CAAC,OAAO,CAAC;QACvB,KAAK,6CAAoB;YACvB,OAAO,aAAK,CAAC,OAAO,CAAC;QACvB,KAAK,4CAAmB;YACtB,OAAO,aAAK,CAAC,MAAM,CAAC;QACtB,OAAO,CAAC,CAAC,CAAC;YACR,IAAI,cAAM,CAAC,QAAQ,CAAC,OAAgB,CAAC,EAAE,CAAC;gBACtC,OAAO,OAAgB,CAAC;YAC1B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,KAAU;IAI9C,OAAO,KAAK,CAAC,MAAM,KAAK,uBAAuB,CAAC;AAClD,CAAC","sourcesContent":["import type { SessionData } from '@metamask/multichain-api-client';\nimport { SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, SOLANA_TESTNET_CHAIN } from '@solana/wallet-standard-chains';\nimport { type CaipAccountId, type CaipChainIdStruct, Scope, scopes } from './types';\n\nexport const CAIP_ACCOUNT_ID_REGEX =\n  /^(?<chainId>(?<namespace>[-a-z0-9]{3,8}):(?<reference>[-_a-zA-Z0-9]{1,32})):(?<accountAddress>[-.%a-zA-Z0-9]{1,128})$/u;\n\n/**\n * Validates and parses a CAIP-10 account ID.\n *\n * @param caipAccountId - The CAIP-10 account ID to validate and parse.\n * @returns The CAIP-10 address.\n */\nexport function getAddressFromCaipAccountId(caipAccountId: CaipAccountId) {\n  const match = CAIP_ACCOUNT_ID_REGEX.exec(caipAccountId);\n\n  if (!match?.groups?.accountAddress) {\n    throw new Error('Invalid CAIP account ID.');\n  }\n\n  return match.groups.accountAddress!;\n}\n\nexport function getScopeFromWalletStandardChain(chainId: CaipChainIdStruct | undefined): Scope {\n  switch (chainId) {\n    case SOLANA_MAINNET_CHAIN:\n    case undefined:\n      return Scope.MAINNET;\n    case SOLANA_TESTNET_CHAIN:\n      return Scope.TESTNET;\n    case SOLANA_DEVNET_CHAIN:\n      return Scope.DEVNET;\n    default: {\n      if (scopes.includes(chainId as Scope)) {\n        return chainId as Scope;\n      }\n      throw new Error(`Unsupported chainId: ${chainId}`);\n    }\n  }\n}\n\nexport function isSessionChangedEvent(event: any): event is {\n  method: 'wallet_sessionChanged';\n  params: SessionData;\n} {\n  return event.method === 'wallet_sessionChanged';\n}\n"]}