{"version":3,"file":"albedo.module.mjs","sources":["../../src/modules/albedo.module.ts"],"sourcesContent":["import albedo from '@albedo-link/intent';\n\nimport { ModuleInterface, ModuleType, WalletNetwork } from '../types';\nimport { parseError } from '../utils';\n\nexport const ALBEDO_ID = 'albedo';\n\nexport class AlbedoModule implements ModuleInterface {\n  moduleType: ModuleType = ModuleType.HOT_WALLET;\n\n  productId: string = ALBEDO_ID;\n  productName: string = 'Albedo';\n  productUrl: string = 'https://albedo.link/';\n  productIcon: string = 'https://stellar.creit.tech/wallet-icons/albedo.png';\n\n  async isAvailable(): Promise<boolean> {\n    return true;\n  }\n\n  async getAddress(): Promise<{ address: string }> {\n    return albedo\n      .publicKey({})\n      .then(result => ({ address: result.pubkey }))\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 albedo\n      .tx({\n        xdr,\n        pubkey: opts?.address,\n        network: opts?.networkPassphrase\n          ? opts.networkPassphrase === WalletNetwork.PUBLIC\n            ? AlbedoNetwork.PUBLIC\n            : AlbedoNetwork.TESTNET\n          : undefined,\n      })\n      .then(({ signed_envelope_xdr }) => ({\n        signedTxXdr: signed_envelope_xdr,\n        signerAddress: opts?.address,\n      }))\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: 'Albedo does not support the \"signAuthEntry\" function',\n    };\n  }\n\n  /**\n   * We understand that Albedo has a method to sign a message, but that method is not compatible with SEP-0043\n   */\n  async signMessage(): Promise<{ signedMessage: string; signerAddress?: string }> {\n    throw {\n      code: -3,\n      message: 'Albedo does not support the \"signMessage\" function',\n    };\n  }\n\n  async getNetwork(): Promise<{ network: string; networkPassphrase: string }> {\n    throw {\n      code: -3,\n      message: 'Albedo does not support the \"getNetwork\" function',\n    };\n  }\n}\n\nexport enum AlbedoNetwork {\n  PUBLIC = 'public',\n  TESTNET = 'testnet',\n}\n"],"names":["AlbedoNetwork"],"mappings":";;;;AAKO,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,sBAAA;AACrB,IAAsB,IAAA,CAAA,WAAA,GAAA,oDAAA;AAAA;AAAA,EAEtB,MAAM,WAAgC,GAAA;AACpC,IAAO,OAAA,IAAA;AAAA;AACT,EAEA,MAAM,UAA2C,GAAA;AAC/C,IAAA,OAAO,MACJ,CAAA,SAAA,CAAU,EAAE,EACZ,IAAK,CAAA,CAAA,MAAA,MAAW,EAAE,OAAA,EAAS,MAAO,CAAA,MAAA,EAAS,CAAA,CAAA,CAC3C,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,OAAO,OACJ,EAAG,CAAA;AAAA,MACF,GAAA;AAAA,MACA,QAAQ,IAAM,EAAA,OAAA;AAAA,MACd,OAAA,EAAS,MAAM,iBACX,GAAA,IAAA,CAAK,sBAAsB,aAAc,CAAA,MAAA,GACvC,wBACA,SACF,iBAAA,KAAA;AAAA,KACL,CACA,CAAA,IAAA,CAAK,CAAC,EAAE,qBAA2B,MAAA;AAAA,MAClC,WAAa,EAAA,mBAAA;AAAA,MACb,eAAe,IAAM,EAAA;AAAA,KACvB,CAAE,CACD,CAAA,KAAA,CAAM,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;AAAA;AAAA;AAAA,EAKA,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;AAEY,IAAA,aAAA,qBAAAA,cAAL,KAAA;AACL,EAAAA,eAAA,QAAS,CAAA,GAAA,QAAA;AACT,EAAAA,eAAA,SAAU,CAAA,GAAA,SAAA;AAFA,EAAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;;;;"}