{"version":3,"file":"freighter.module.mjs","sources":["../../src/modules/freighter.module.ts"],"sourcesContent":["import {\n  isConnected,\n  signTransaction,\n  signAuthEntry,\n  requestAccess,\n  signMessage,\n  getNetwork,\n  getAddress,\n} from '@stellar/freighter-api';\nimport { ModuleInterface, ModuleType } from '../types';\nimport { parseError } from '../utils';\nimport { Buffer } from 'buffer';\n\nexport const FREIGHTER_ID = 'freighter';\n\nexport class FreighterModule implements ModuleInterface {\n  moduleType: ModuleType = ModuleType.HOT_WALLET;\n\n  productId: string = FREIGHTER_ID;\n  productName: string = 'Freighter';\n  productUrl: string = 'https://freighter.app';\n  productIcon: string = 'https://stellar.creit.tech/wallet-icons/freighter.png';\n\n  async runChecks(): Promise<void> {\n    if (!(await this.isAvailable())) {\n      throw new Error('Freighter is not connected');\n    }\n  }\n\n  async isAvailable(): Promise<boolean> {\n    return isConnected()\n      .then(({ isConnected, error }) => !error && isConnected)\n      .catch((): boolean => false);\n  }\n\n  async getAddress(): Promise<{ address: string }> {\n    return this.runChecks()\n      .then(() => requestAccess())\n      .then(() => getAddress())\n      .then(({ address, error }) => {\n        if (error) throw error;\n\n        return { address };\n      })\n      .catch(e => {\n        throw parseError(e);\n      });\n  }\n\n  async signTransaction(\n    xdr: string,\n    opts?: {\n      networkPassphrase?: string;\n      address?: string;\n      path?: string;\n      submit?: boolean;\n      submitUrl?: string;\n    }\n  ): Promise<{ signedTxXdr: string; signerAddress?: string }> {\n    return this.runChecks()\n      .then(async () => {\n        const { signedTxXdr, signerAddress, error } = await signTransaction(xdr, {\n          address: opts?.address,\n          networkPassphrase: opts?.networkPassphrase,\n        });\n\n        if (error) throw error;\n\n        return { signedTxXdr, signerAddress: signerAddress };\n      })\n      .catch(e => {\n        throw parseError(e);\n      });\n  }\n\n  async signAuthEntry(\n    authEntry: string,\n    opts?: {\n      networkPassphrase?: string;\n      address?: string;\n      path?: string;\n    }\n  ): Promise<{ signedAuthEntry: string; signerAddress?: string }> {\n    return this.runChecks()\n      .then(async () => {\n        const { signedAuthEntry, signerAddress, error } = await signAuthEntry(authEntry, {\n          address: opts?.address,\n          networkPassphrase: opts?.networkPassphrase,\n        });\n\n        if (error || !signedAuthEntry) throw error;\n\n        return { signedAuthEntry: Buffer.from(signedAuthEntry).toString('base64'), signerAddress: signerAddress };\n      })\n      .catch(e => {\n        throw parseError(e);\n      });\n  }\n\n  async signMessage(\n    message: string,\n    opts?: {\n      networkPassphrase?: string;\n      address?: string;\n      path?: string;\n    }\n  ): Promise<{ signedMessage: string; signerAddress?: string }> {\n    return this.runChecks()\n      .then(async () => {\n        const { signedMessage, signerAddress, error } = await signMessage(message, {\n          address: opts?.address,\n          networkPassphrase: opts?.networkPassphrase,\n        });\n\n        if (error || !signedMessage) throw error;\n\n        return { signedMessage: Buffer.from(signedMessage).toString('base64'), signerAddress: signerAddress };\n      })\n      .catch(e => {\n        throw parseError(e);\n      });\n  }\n\n  async getNetwork(): Promise<{ network: string; networkPassphrase: string }> {\n    return this.runChecks()\n      .then(async () => {\n        const { network, networkPassphrase, error } = await getNetwork();\n\n        if (error) throw error;\n\n        return { network, networkPassphrase };\n      })\n      .catch(e => {\n        throw parseError(e);\n      });\n  }\n}\n"],"names":["isConnected"],"mappings":"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"}