@creit.tech/stellar-wallets-kit
Version:
A kit to handle all Stellar Wallets at once
1 lines • 5.75 kB
Source Map (JSON)
{"version":3,"file":"hana.module.cjs","sources":["../../src/modules/hana.module.ts"],"sourcesContent":["import { ModuleInterface, ModuleType } from '../types';\nimport { parseError } from '../utils';\n\ninterface SignTransactionProps {\n xdr: string;\n accountToSign?: string;\n networkPassphrase?: string;\n}\n\ninterface SignBlobProps {\n blob: string;\n accountToSign: string;\n}\n\ninterface SignAuthEntryProps {\n xdr: string;\n accountToSign?: string;\n}\n\ninterface SignMessageProps {\n message: string;\n accountToSign?: string;\n}\n\ndeclare const window: Window & {\n hanaWallet?: {\n stellar?: {\n getPublicKey(): Promise<string>;\n signTransaction({ xdr, accountToSign, networkPassphrase }: SignTransactionProps): Promise<string>;\n signBlob({ blob, accountToSign }: SignBlobProps): Promise<string>;\n signAuthEntry({ xdr, accountToSign }: SignAuthEntryProps): Promise<string>;\n signMessage({ message, accountToSign }: SignMessageProps): Promise<string>;\n };\n };\n};\n\nexport const HANA_ID = 'hana';\n\nexport class HanaModule implements ModuleInterface {\n moduleType: ModuleType = ModuleType.HOT_WALLET;\n\n productId: string = HANA_ID;\n productName: string = 'Hana Wallet';\n productUrl: string = 'https://hanawallet.io/';\n productIcon: string = 'https://stellar.creit.tech/wallet-icons/hana.png';\n\n async runChecks(): Promise<void> {\n if (!(await this.isAvailable())) {\n throw new Error('Hana Wallet is not installed');\n }\n }\n\n async isAvailable(): Promise<boolean> {\n return typeof window !== 'undefined' && !!window.hanaWallet?.stellar;\n }\n\n async getAddress(): Promise<{ address: string }> {\n return this.runChecks()\n .then(() => window.hanaWallet!.stellar!.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 return this.runChecks()\n .then(() =>\n window.hanaWallet!.stellar!.signTransaction({\n xdr,\n accountToSign: opts?.address,\n networkPassphrase: opts?.networkPassphrase,\n })\n )\n .then(signedTxXdr => ({ signedTxXdr, signerAddress: opts?.address }))\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(() =>\n window.hanaWallet!.stellar!.signAuthEntry({\n xdr: authEntry,\n accountToSign: opts?.address,\n })\n )\n .then(signedAuthEntry => ({ signedAuthEntry, signerAddress: opts?.address }))\n .catch(e => {\n throw parseError(e);\n });\n }\n\n async signMessage(\n message: string,\n opts?: {\n address?: string;\n }\n ): Promise<{ signedMessage: string; signerAddress?: string }> {\n return this.runChecks()\n .then(() =>\n window.hanaWallet!.stellar!.signMessage({\n message,\n accountToSign: opts?.address,\n })\n )\n .then(signedMessage => ({ signedMessage, signerAddress: opts?.address }))\n .catch(e => {\n throw parseError(e);\n });\n }\n\n async getNetwork(): Promise<{ network: string; networkPassphrase: string }> {\n throw {\n code: -3,\n message: 'Hana does not support the \"getNetwork\" function',\n };\n }\n}\n"],"names":["ModuleType","parseError"],"mappings":";;;;;AAoCO,MAAM,OAAO,GAAG;MAEV,UAAU,CAAA;AAAvB,IAAA,WAAA,GAAA;AACE,QAAA,IAAA,CAAA,UAAU,GAAeA,gBAAU,CAAC,UAAU;QAE9C,IAAS,CAAA,SAAA,GAAW,OAAO;QAC3B,IAAW,CAAA,WAAA,GAAW,aAAa;QACnC,IAAU,CAAA,UAAA,GAAW,wBAAwB;QAC7C,IAAW,CAAA,WAAA,GAAW,kDAAkD;;AAExE,IAAA,MAAM,SAAS,GAAA;QACb,IAAI,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;;;AAInD,IAAA,MAAM,WAAW,GAAA;AACf,QAAA,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO;;AAGtE,IAAA,MAAM,UAAU,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;AAClB,aAAA,IAAI,CAAC,MAAM,MAAM,CAAC,UAAW,CAAC,OAAQ,CAAC,YAAY,EAAE;aACrD,IAAI,CAAC,OAAO,KAAK,EAAE,OAAO,EAAE,CAAC;aAC7B,KAAK,CAAC,CAAC,IAAG;AACT,YAAA,MAAMC,gBAAU,CAAC,CAAC,CAAC;AACrB,SAAC,CAAC;;AAGN,IAAA,MAAM,eAAe,CACnB,GAAW,EACX,IAMC,EAAA;QAED,OAAO,IAAI,CAAC,SAAS;aAClB,IAAI,CAAC,MACJ,MAAM,CAAC,UAAW,CAAC,OAAQ,CAAC,eAAe,CAAC;YAC1C,GAAG;YACH,aAAa,EAAE,IAAI,EAAE,OAAO;YAC5B,iBAAiB,EAAE,IAAI,EAAE,iBAAiB;AAC3C,SAAA,CAAC;AAEH,aAAA,IAAI,CAAC,WAAW,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aACnE,KAAK,CAAC,CAAC,IAAG;AACT,YAAA,MAAMA,gBAAU,CAAC,CAAC,CAAC;AACrB,SAAC,CAAC;;AAGN,IAAA,MAAM,aAAa,CACjB,SAAiB,EACjB,IAIC,EAAA;QAED,OAAO,IAAI,CAAC,SAAS;aAClB,IAAI,CAAC,MACJ,MAAM,CAAC,UAAW,CAAC,OAAQ,CAAC,aAAa,CAAC;AACxC,YAAA,GAAG,EAAE,SAAS;YACd,aAAa,EAAE,IAAI,EAAE,OAAO;AAC7B,SAAA,CAAC;AAEH,aAAA,IAAI,CAAC,eAAe,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aAC3E,KAAK,CAAC,CAAC,IAAG;AACT,YAAA,MAAMA,gBAAU,CAAC,CAAC,CAAC;AACrB,SAAC,CAAC;;AAGN,IAAA,MAAM,WAAW,CACf,OAAe,EACf,IAEC,EAAA;QAED,OAAO,IAAI,CAAC,SAAS;aAClB,IAAI,CAAC,MACJ,MAAM,CAAC,UAAW,CAAC,OAAQ,CAAC,WAAW,CAAC;YACtC,OAAO;YACP,aAAa,EAAE,IAAI,EAAE,OAAO;AAC7B,SAAA,CAAC;AAEH,aAAA,IAAI,CAAC,aAAa,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aACvE,KAAK,CAAC,CAAC,IAAG;AACT,YAAA,MAAMA,gBAAU,CAAC,CAAC,CAAC;AACrB,SAAC,CAAC;;AAGN,IAAA,MAAM,UAAU,GAAA;QACd,MAAM;YACJ,IAAI,EAAE,CAAC,CAAC;AACR,YAAA,OAAO,EAAE,iDAAiD;SAC3D;;AAEJ;;;;;"}