{"version":3,"file":"XlmAccountProvider.mjs","sourceRoot":"","sources":["../../src/providers/XlmAccountProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,8BAA8B;AACjE,OAAO,EAAE,YAAY,EAAE,qCAAqC;AAK5D,OAAO,EAAE,aAAa,EAAE,+BAAqB;AAE7C,OAAO,EAAE,mBAAmB,EAAE,kCAA8B;AAK5D,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC;AAEnD,MAAM,CAAC,MAAM,mCAAmC,GAA6B;IAC3E,cAAc,EAAE,CAAC;IACjB,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI;KAChB;IACD,cAAc,EAAE;QACd,SAAS,EAAE,KAAK;KACjB;IACD,cAAc,EAAE;QACd,2BAA2B,EAAE,IAAI;KAClC;CACF,CAAC;AAEF,MAAM,OAAO,kBAAmB,SAAQ,mBAAmB;IASzD,YACE,SAA4C,EAC5C,SAAmC,mCAAmC,EACtE,QAAuB,aAAa;QAEpC,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QATlE,2EAA2E;QAC3E,wEAAwE;QACrD,sBAAiB,GAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAQxE,CAAC;IAED,OAAO;QACL,OAAO,kBAAkB,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,mBAAmB,CAAC,OAAsC;QACxD,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO;YACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAM,YAAY,CAAC,IAAe,CAChE,CAAC;IACJ,CAAC;;AAzBM,uBAAI,GAAG,yBAAyB,AAA5B,CAA6B;AAEjC,8BAAW,GAAG,mCAA6C,AAAhD,CAAiD","sourcesContent":["import type { Bip44Account } from '@metamask/account-api';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport { XlmAccountType, XlmScope } from '@metamask/keyring-api';\nimport { KeyringTypes } from '@metamask/keyring-controller';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport type { SnapId } from '@metamask/snaps-sdk';\nimport type { CaipChainId } from '@metamask/utils';\n\nimport { traceFallback } from '../analytics';\nimport type { MultichainAccountServiceMessenger } from '../types';\nimport { SnapAccountProvider } from './SnapAccountProvider';\nimport type { SnapAccountProviderConfig } from './SnapAccountProvider';\n\nexport type XlmAccountProviderConfig = SnapAccountProviderConfig;\n\nexport const XLM_ACCOUNT_PROVIDER_NAME = 'Stellar';\n\nexport const XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG: XlmAccountProviderConfig = {\n  maxConcurrency: 3,\n  discovery: {\n    enabled: true,\n    timeoutMs: 2000,\n    maxAttempts: 3,\n    backOffMs: 1000,\n  },\n  createAccounts: {\n    timeoutMs: 10000,\n  },\n  resyncAccounts: {\n    autoRemoveExtraSnapAccounts: true,\n  },\n};\n\nexport class XlmAccountProvider extends SnapAccountProvider {\n  static NAME = XLM_ACCOUNT_PROVIDER_NAME;\n\n  static XLM_SNAP_ID = 'npm:@metamask/stellar-wallet-snap' as SnapId;\n\n  // TODO: Remove once the Snap is fully v2 — discovery is then driven by the\n  // Snap's own supported scopes via `createAccounts({ bip44:discover })`.\n  protected readonly v1DiscoveryScopes: CaipChainId[] = [XlmScope.Pubnet];\n\n  constructor(\n    messenger: MultichainAccountServiceMessenger,\n    config: XlmAccountProviderConfig = XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG,\n    trace: TraceCallback = traceFallback,\n  ) {\n    super(XlmAccountProvider.XLM_SNAP_ID, messenger, config, trace);\n  }\n\n  getName(): string {\n    return XlmAccountProvider.NAME;\n  }\n\n  isAccountCompatible(account: Bip44Account<InternalAccount>): boolean {\n    return (\n      account.type === XlmAccountType.Account &&\n      account.metadata.keyring.type === (KeyringTypes.snap as string)\n    );\n  }\n}\n"]}