{"version":3,"file":"lobstr.module.mjs","sources":["../../src/modules/lobstr.module.ts"],"sourcesContent":["import { isConnected, getPublicKey, signTransaction } from '@lobstrco/signer-extension-api';\nimport { ModuleInterface, ModuleType } from '../types';\nimport { parseError } from '../utils';\n\nexport const LOBSTR_ID = 'lobstr';\n\nexport class LobstrModule implements ModuleInterface {\n  moduleType: ModuleType = ModuleType.HOT_WALLET;\n\n  productId: string = LOBSTR_ID;\n  productName: string = 'LOBSTR';\n  productUrl: string = 'https://lobstr.co';\n  productIcon: string = 'https://stellar.creit.tech/wallet-icons/lobstr.png';\n\n  async isAvailable(): Promise<boolean> {\n    return isConnected();\n  }\n\n  async getAddress(): Promise<{ address: string }> {\n    const runChecks = async () => {\n      if (!(await isConnected())) {\n        throw new Error(`Lobstr is not connected`);\n      }\n    };\n\n    return runChecks()\n      .then(() => getPublicKey())\n      .then(address => ({ address }))\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    const runChecks = async () => {\n      if (!(await isConnected())) {\n        throw new Error(`Lobstr is not connected`);\n      }\n\n      if (opts?.address) {\n        console.warn(`Lobstr doesn't allow specifying what public key should sign the transaction, we skip the value`);\n      }\n\n      if (opts?.networkPassphrase) {\n        console.warn(`Lobstr doesn't allow specifying the network that should be used, we skip the value`);\n      }\n    };\n\n    return runChecks()\n      .then(() => signTransaction(xdr))\n      .then(signedTxXdr => ({ signedTxXdr }))\n      .catch(e => {\n        throw parseError(e);\n      });\n  }\n\n  async signAuthEntry(): Promise<{ signedAuthEntry: string; signerAddress?: string }> {\n    throw {\n      code: -3,\n      message: 'Lobstr does not support the \"signAuthEntry\" function',\n    };\n  }\n\n  async signMessage(): Promise<{ signedMessage: string; signerAddress?: string }> {\n    throw {\n      code: -3,\n      message: 'Lobstr does not support the \"signMessage\" function',\n    };\n  }\n\n  async getNetwork(): Promise<{ network: string; networkPassphrase: string }> {\n    throw {\n      code: -3,\n      message: 'Lobstr does not support the \"getNetwork\" function',\n    };\n  }\n}\n"],"names":[],"mappings":";;;;AAIO,MAAM,SAAY,GAAA;AAElB,MAAM,YAAwC,CAAA;AAAA,EAA9C,WAAA,GAAA;AACL,IAAA,IAAA,CAAA,UAAA,GAAyB,UAAW,CAAA,UAAA;AAEpC,IAAoB,IAAA,CAAA,SAAA,GAAA,SAAA;AACpB,IAAsB,IAAA,CAAA,WAAA,GAAA,QAAA;AACtB,IAAqB,IAAA,CAAA,UAAA,GAAA,mBAAA;AACrB,IAAsB,IAAA,CAAA,WAAA,GAAA,oDAAA;AAAA;AAAA,EAEtB,MAAM,WAAgC,GAAA;AACpC,IAAA,OAAO,WAAY,EAAA;AAAA;AACrB,EAEA,MAAM,UAA2C,GAAA;AAC/C,IAAA,MAAM,YAAY,YAAY;AAC5B,MAAI,IAAA,CAAE,MAAM,WAAA,EAAgB,EAAA;AAC1B,QAAM,MAAA,IAAI,MAAM,CAAyB,uBAAA,CAAA,CAAA;AAAA;AAC3C,KACF;AAEA,IAAA,OAAO,SAAU,EAAA,CACd,IAAK,CAAA,MAAM,cAAc,CAAA,CACzB,IAAK,CAAA,CAAA,OAAA,MAAY,EAAE,OAAA,EAAU,CAAA,CAAA,CAC7B,MAAM,CAAK,CAAA,KAAA;AACV,MAAA,MAAM,WAAW,CAAC,CAAA;AAAA,KACnB,CAAA;AAAA;AACL,EAEA,MAAM,eACJ,CAAA,GAAA,EACA,IAO0D,EAAA;AAC1D,IAAA,MAAM,YAAY,YAAY;AAC5B,MAAI,IAAA,CAAE,MAAM,WAAA,EAAgB,EAAA;AAC1B,QAAM,MAAA,IAAI,MAAM,CAAyB,uBAAA,CAAA,CAAA;AAAA;AAG3C,MAAA,IAAI,MAAM,OAAS,EAAA;AACjB,QAAA,OAAA,CAAQ,KAAK,CAAgG,8FAAA,CAAA,CAAA;AAAA;AAG/G,MAAA,IAAI,MAAM,iBAAmB,EAAA;AAC3B,QAAA,OAAA,CAAQ,KAAK,CAAoF,kFAAA,CAAA,CAAA;AAAA;AACnG,KACF;AAEA,IAAA,OAAO,SAAU,EAAA,CACd,IAAK,CAAA,MAAM,gBAAgB,GAAG,CAAC,CAC/B,CAAA,IAAA,CAAK,kBAAgB,EAAE,WAAA,EAAc,CAAA,CAAA,CACrC,MAAM,CAAK,CAAA,KAAA;AACV,MAAA,MAAM,WAAW,CAAC,CAAA;AAAA,KACnB,CAAA;AAAA;AACL,EAEA,MAAM,aAA8E,GAAA;AAClF,IAAM,MAAA;AAAA,MACJ,IAAM,EAAA,CAAA,CAAA;AAAA,MACN,OAAS,EAAA;AAAA,KACX;AAAA;AACF,EAEA,MAAM,WAA0E,GAAA;AAC9E,IAAM,MAAA;AAAA,MACJ,IAAM,EAAA,CAAA,CAAA;AAAA,MACN,OAAS,EAAA;AAAA,KACX;AAAA;AACF,EAEA,MAAM,UAAsE,GAAA;AAC1E,IAAM,MAAA;AAAA,MACJ,IAAM,EAAA,CAAA,CAAA;AAAA,MACN,OAAS,EAAA;AAAA,KACX;AAAA;AAEJ;;;;"}