@dynamic-labs/stellar 4.59.2 → 4.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +9 -7
  5. package/src/connectors/FreighterWalletConnector/FreighterProvider.cjs +84 -0
  6. package/src/connectors/FreighterWalletConnector/FreighterProvider.d.ts +6 -0
  7. package/src/connectors/FreighterWalletConnector/FreighterProvider.js +80 -0
  8. package/src/connectors/FreighterWalletConnector/FreighterWalletConnector.cjs +45 -0
  9. package/src/connectors/FreighterWalletConnector/FreighterWalletConnector.d.ts +16 -0
  10. package/src/connectors/FreighterWalletConnector/FreighterWalletConnector.js +41 -0
  11. package/src/connectors/FreighterWalletConnector/index.d.ts +2 -0
  12. package/src/connectors/LobstrWalletConnector/LobstrWalletConnector.cjs +95 -0
  13. package/src/connectors/LobstrWalletConnector/LobstrWalletConnector.d.ts +22 -0
  14. package/src/connectors/LobstrWalletConnector/LobstrWalletConnector.js +91 -0
  15. package/src/connectors/LobstrWalletConnector/index.d.ts +1 -0
  16. package/src/connectors/OneKeyWalletConnector/OneKeyProvider.cjs +124 -0
  17. package/src/connectors/OneKeyWalletConnector/OneKeyProvider.d.ts +6 -0
  18. package/src/connectors/OneKeyWalletConnector/OneKeyProvider.js +120 -0
  19. package/src/connectors/OneKeyWalletConnector/OneKeyWalletConnector.cjs +43 -0
  20. package/src/connectors/OneKeyWalletConnector/OneKeyWalletConnector.d.ts +14 -0
  21. package/src/connectors/OneKeyWalletConnector/OneKeyWalletConnector.js +39 -0
  22. package/src/connectors/StellarWalletConnector/StellarWalletConnector.cjs +80 -4
  23. package/src/connectors/StellarWalletConnector/StellarWalletConnector.d.ts +10 -0
  24. package/src/connectors/StellarWalletConnector/StellarWalletConnector.js +81 -5
  25. package/src/index.cjs +1 -0
  26. package/src/index.js +1 -0
  27. package/src/injected/fetchInjectedWalletConnectors.cjs +7 -1
  28. package/src/injected/fetchInjectedWalletConnectors.d.ts +1 -1
  29. package/src/injected/fetchInjectedWalletConnectors.js +7 -1
  30. package/src/types/IStellarProvider.d.ts +73 -0
  31. package/src/types.d.ts +7 -12
  32. package/src/utils/buildPaymentTransaction.cjs +37 -0
  33. package/src/utils/buildPaymentTransaction.d.ts +21 -0
  34. package/src/utils/buildPaymentTransaction.js +33 -0
  35. package/src/utils/checkTrustline.cjs +33 -0
  36. package/src/utils/checkTrustline.d.ts +9 -0
  37. package/src/utils/checkTrustline.js +29 -0
  38. package/src/utils/createPaymentAsset.cjs +23 -0
  39. package/src/utils/createPaymentAsset.d.ts +13 -0
  40. package/src/utils/createPaymentAsset.js +19 -0
  41. package/src/utils/createTransactionMemo.d.ts +13 -0
  42. package/src/utils/getAccountBalance.cjs +33 -0
  43. package/src/utils/getAccountBalance.d.ts +11 -0
  44. package/src/utils/getAccountBalance.js +29 -0
  45. package/src/utils/getNetworkPassphrase.d.ts +7 -0
  46. package/src/utils/index.d.ts +7 -0
  47. package/src/utils/normalizeNetworkName.d.ts +14 -0
  48. package/src/wallet/StellarWallet.cjs +65 -10
  49. package/src/wallet/StellarWallet.d.ts +14 -8
  50. package/src/wallet/StellarWallet.js +65 -10
  51. package/src/types/FreighterProvider.d.ts +0 -82
package/CHANGELOG.md CHANGED
@@ -1,4 +1,14 @@
1
1
 
2
+ ## [4.60.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.59.2...v4.60.0) (2026-02-05)
3
+
4
+
5
+ ### Features
6
+
7
+ * add prompt to unlock wallet when getting encrypted shares ([#10333](https://github.com/dynamic-labs/dynamic-auth/issues/10333)) ([7009dfa](https://github.com/dynamic-labs/dynamic-auth/commit/7009dfa315538f4f4ad27ff37e7902f10e1cf019))
8
+ * add stellar sendBalance method ([#10310](https://github.com/dynamic-labs/dynamic-auth/issues/10310)) ([c083ea0](https://github.com/dynamic-labs/dynamic-auth/commit/c083ea0a7caa0cb9095d32897acf677c1b661cb4))
9
+ * **webview-controller:** add DelegatedAccessController ([#10348](https://github.com/dynamic-labs/dynamic-auth/issues/10348)) ([57599e4](https://github.com/dynamic-labs/dynamic-auth/commit/57599e4dd1ad6f4b22f98d49d7fae1a724b719ee))
10
+ * **webview-messages:** add DelegatedAccessMessages types ([#10347](https://github.com/dynamic-labs/dynamic-auth/issues/10347)) ([b0a1275](https://github.com/dynamic-labs/dynamic-auth/commit/b0a12759016fa6f8a76753c2394d589acb18ccf1))
11
+
2
12
  ### [4.59.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.59.1...v4.59.2) (2026-02-03)
3
13
 
4
14
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.59.2";
6
+ var version = "4.60.0";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.59.2";
2
+ var version = "4.60.0";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/stellar",
3
- "version": "4.59.2",
3
+ "version": "4.60.0",
4
4
  "description": "A React SDK for implementing Stellar wallet web3 authentication and authorization to your website.",
5
5
  "author": "Dynamic Labs, Inc.",
6
6
  "license": "MIT",
@@ -20,12 +20,14 @@
20
20
  "dependencies": {
21
21
  "@dynamic-labs/sdk-api-core": "0.0.860",
22
22
  "@stellar/stellar-sdk": "14.4.3",
23
- "@dynamic-labs/wallet-connector-core": "4.59.2",
24
- "@dynamic-labs/assert-package-version": "4.59.2",
25
- "@dynamic-labs/logger": "4.59.2",
26
- "@dynamic-labs/types": "4.59.2",
27
- "@dynamic-labs/utils": "4.59.2",
28
- "@dynamic-labs/wallet-book": "4.59.2"
23
+ "@dynamic-labs/wallet-connector-core": "4.60.0",
24
+ "@dynamic-labs/assert-package-version": "4.60.0",
25
+ "@lobstrco/signer-extension-api": "2.0.0",
26
+ "@stellar/freighter-api": "6.0.1",
27
+ "@dynamic-labs/logger": "4.60.0",
28
+ "@dynamic-labs/types": "4.60.0",
29
+ "@dynamic-labs/utils": "4.60.0",
30
+ "@dynamic-labs/wallet-book": "4.60.0"
29
31
  },
30
32
  "peerDependencies": {}
31
33
  }
@@ -0,0 +1,84 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../_virtual/_tslib.cjs');
7
+ var freighterApi = require('@stellar/freighter-api');
8
+
9
+ /**
10
+ * Freighter Wallet provider adapter that implements IStellarProvider
11
+ * using the Freighter API.
12
+ */
13
+ const createFreighterProvider = () => {
14
+ let watcher;
15
+ const eventCallbacks = new Map();
16
+ let isWatcherStarted = false;
17
+ const startWatcher = () => {
18
+ if (isWatcherStarted) {
19
+ return;
20
+ }
21
+ if (!watcher) {
22
+ watcher = new freighterApi.WatchWalletChanges();
23
+ }
24
+ watcher.watch((params) => {
25
+ const accountChangedCallbacks = eventCallbacks.get('accountChanged');
26
+ const networkChangedCallbacks = eventCallbacks.get('networkChanged');
27
+ if (accountChangedCallbacks && params.address !== undefined) {
28
+ accountChangedCallbacks.forEach((callback) => {
29
+ callback(params.address);
30
+ });
31
+ }
32
+ if (networkChangedCallbacks && params.network !== undefined) {
33
+ networkChangedCallbacks.forEach((callback) => {
34
+ callback(params.network);
35
+ });
36
+ }
37
+ });
38
+ isWatcherStarted = true;
39
+ };
40
+ return {
41
+ close: () => {
42
+ watcher === null || watcher === void 0 ? void 0 : watcher.stop();
43
+ eventCallbacks.clear();
44
+ isWatcherStarted = false;
45
+ },
46
+ connect: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
47
+ var _a;
48
+ const response = yield freighterApi.requestAccess();
49
+ return (_a = response.address) !== null && _a !== void 0 ? _a : '';
50
+ }),
51
+ disconnect: () => _tslib.__awaiter(void 0, void 0, void 0, function* () { return undefined; }),
52
+ getNetwork: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
53
+ var _b;
54
+ const response = yield freighterApi.getNetwork();
55
+ return (_b = response.network) !== null && _b !== void 0 ? _b : 'PUBLIC';
56
+ }),
57
+ isUnlocked: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
58
+ var _c;
59
+ const response = yield freighterApi.isConnected();
60
+ return (_c = response.isConnected) !== null && _c !== void 0 ? _c : false;
61
+ }),
62
+ on: (event, callback) => {
63
+ if (!eventCallbacks.has(event)) {
64
+ eventCallbacks.set(event, new Set());
65
+ }
66
+ eventCallbacks.get(event).add(callback);
67
+ startWatcher();
68
+ },
69
+ sign: (transactionXdr, options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
70
+ var _d;
71
+ const response = yield freighterApi.signTransaction(transactionXdr, {
72
+ networkPassphrase: options === null || options === void 0 ? void 0 : options.networkPassphrase,
73
+ });
74
+ return (_d = response.signedTxXdr) !== null && _d !== void 0 ? _d : '';
75
+ }),
76
+ signMessage: (message) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
77
+ var _e;
78
+ const response = yield freighterApi.signMessage(message);
79
+ return String((_e = response.signedMessage) !== null && _e !== void 0 ? _e : '');
80
+ }),
81
+ };
82
+ };
83
+
84
+ exports.createFreighterProvider = createFreighterProvider;
@@ -0,0 +1,6 @@
1
+ import type { IStellarProvider } from '../../types';
2
+ /**
3
+ * Freighter Wallet provider adapter that implements IStellarProvider
4
+ * using the Freighter API.
5
+ */
6
+ export declare const createFreighterProvider: () => IStellarProvider;
@@ -0,0 +1,80 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
3
+ import { requestAccess, getNetwork, isConnected, signTransaction, signMessage, WatchWalletChanges } from '@stellar/freighter-api';
4
+
5
+ /**
6
+ * Freighter Wallet provider adapter that implements IStellarProvider
7
+ * using the Freighter API.
8
+ */
9
+ const createFreighterProvider = () => {
10
+ let watcher;
11
+ const eventCallbacks = new Map();
12
+ let isWatcherStarted = false;
13
+ const startWatcher = () => {
14
+ if (isWatcherStarted) {
15
+ return;
16
+ }
17
+ if (!watcher) {
18
+ watcher = new WatchWalletChanges();
19
+ }
20
+ watcher.watch((params) => {
21
+ const accountChangedCallbacks = eventCallbacks.get('accountChanged');
22
+ const networkChangedCallbacks = eventCallbacks.get('networkChanged');
23
+ if (accountChangedCallbacks && params.address !== undefined) {
24
+ accountChangedCallbacks.forEach((callback) => {
25
+ callback(params.address);
26
+ });
27
+ }
28
+ if (networkChangedCallbacks && params.network !== undefined) {
29
+ networkChangedCallbacks.forEach((callback) => {
30
+ callback(params.network);
31
+ });
32
+ }
33
+ });
34
+ isWatcherStarted = true;
35
+ };
36
+ return {
37
+ close: () => {
38
+ watcher === null || watcher === void 0 ? void 0 : watcher.stop();
39
+ eventCallbacks.clear();
40
+ isWatcherStarted = false;
41
+ },
42
+ connect: () => __awaiter(void 0, void 0, void 0, function* () {
43
+ var _a;
44
+ const response = yield requestAccess();
45
+ return (_a = response.address) !== null && _a !== void 0 ? _a : '';
46
+ }),
47
+ disconnect: () => __awaiter(void 0, void 0, void 0, function* () { return undefined; }),
48
+ getNetwork: () => __awaiter(void 0, void 0, void 0, function* () {
49
+ var _b;
50
+ const response = yield getNetwork();
51
+ return (_b = response.network) !== null && _b !== void 0 ? _b : 'PUBLIC';
52
+ }),
53
+ isUnlocked: () => __awaiter(void 0, void 0, void 0, function* () {
54
+ var _c;
55
+ const response = yield isConnected();
56
+ return (_c = response.isConnected) !== null && _c !== void 0 ? _c : false;
57
+ }),
58
+ on: (event, callback) => {
59
+ if (!eventCallbacks.has(event)) {
60
+ eventCallbacks.set(event, new Set());
61
+ }
62
+ eventCallbacks.get(event).add(callback);
63
+ startWatcher();
64
+ },
65
+ sign: (transactionXdr, options) => __awaiter(void 0, void 0, void 0, function* () {
66
+ var _d;
67
+ const response = yield signTransaction(transactionXdr, {
68
+ networkPassphrase: options === null || options === void 0 ? void 0 : options.networkPassphrase,
69
+ });
70
+ return (_d = response.signedTxXdr) !== null && _d !== void 0 ? _d : '';
71
+ }),
72
+ signMessage: (message) => __awaiter(void 0, void 0, void 0, function* () {
73
+ var _e;
74
+ const response = yield signMessage(message);
75
+ return String((_e = response.signedMessage) !== null && _e !== void 0 ? _e : '');
76
+ }),
77
+ };
78
+ };
79
+
80
+ export { createFreighterProvider };
@@ -0,0 +1,45 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../_virtual/_tslib.cjs');
7
+ var freighterApi = require('@stellar/freighter-api');
8
+ var StellarWalletConnector = require('../StellarWalletConnector/StellarWalletConnector.cjs');
9
+ var FreighterProvider = require('./FreighterProvider.cjs');
10
+
11
+ /**
12
+ * Freighter Wallet connector for Stellar blockchain.
13
+ * Implements Stellar wallet functionality using the Freighter browser extension.
14
+ */
15
+ class FreighterWalletConnector extends StellarWalletConnector.StellarWalletConnector {
16
+ constructor(opts) {
17
+ super('Freighter', opts);
18
+ this.name = 'Freighter';
19
+ this.overrideKey = 'freighter';
20
+ }
21
+ getProvider() {
22
+ if (!this.isInstalledOnBrowser()) {
23
+ return undefined;
24
+ }
25
+ if (!this.provider) {
26
+ this.provider = FreighterProvider.createFreighterProvider();
27
+ }
28
+ return this.provider;
29
+ }
30
+ isInstalledOnBrowser() {
31
+ return FreighterWalletConnector.isInstalled;
32
+ }
33
+ static isConnected() {
34
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
35
+ var _a;
36
+ const response = yield freighterApi.isConnected();
37
+ const connected = (_a = response === null || response === void 0 ? void 0 : response.isConnected) !== null && _a !== void 0 ? _a : false;
38
+ FreighterWalletConnector.isInstalled = connected;
39
+ return connected;
40
+ });
41
+ }
42
+ }
43
+ FreighterWalletConnector.isInstalled = false;
44
+
45
+ exports.FreighterWalletConnector = FreighterWalletConnector;
@@ -0,0 +1,16 @@
1
+ import type { IStellarProvider, StellarWalletConnectorProps } from '../../types';
2
+ import { StellarWalletConnector } from '../StellarWalletConnector';
3
+ /**
4
+ * Freighter Wallet connector for Stellar blockchain.
5
+ * Implements Stellar wallet functionality using the Freighter browser extension.
6
+ */
7
+ export declare class FreighterWalletConnector extends StellarWalletConnector {
8
+ name: string;
9
+ overrideKey: string;
10
+ private provider;
11
+ static isInstalled: boolean;
12
+ constructor(opts: StellarWalletConnectorProps);
13
+ getProvider(): IStellarProvider | undefined;
14
+ isInstalledOnBrowser(): boolean;
15
+ static isConnected(): Promise<boolean>;
16
+ }
@@ -0,0 +1,41 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
3
+ import { isConnected } from '@stellar/freighter-api';
4
+ import { StellarWalletConnector } from '../StellarWalletConnector/StellarWalletConnector.js';
5
+ import { createFreighterProvider } from './FreighterProvider.js';
6
+
7
+ /**
8
+ * Freighter Wallet connector for Stellar blockchain.
9
+ * Implements Stellar wallet functionality using the Freighter browser extension.
10
+ */
11
+ class FreighterWalletConnector extends StellarWalletConnector {
12
+ constructor(opts) {
13
+ super('Freighter', opts);
14
+ this.name = 'Freighter';
15
+ this.overrideKey = 'freighter';
16
+ }
17
+ getProvider() {
18
+ if (!this.isInstalledOnBrowser()) {
19
+ return undefined;
20
+ }
21
+ if (!this.provider) {
22
+ this.provider = createFreighterProvider();
23
+ }
24
+ return this.provider;
25
+ }
26
+ isInstalledOnBrowser() {
27
+ return FreighterWalletConnector.isInstalled;
28
+ }
29
+ static isConnected() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ var _a;
32
+ const response = yield isConnected();
33
+ const connected = (_a = response === null || response === void 0 ? void 0 : response.isConnected) !== null && _a !== void 0 ? _a : false;
34
+ FreighterWalletConnector.isInstalled = connected;
35
+ return connected;
36
+ });
37
+ }
38
+ }
39
+ FreighterWalletConnector.isInstalled = false;
40
+
41
+ export { FreighterWalletConnector };
@@ -0,0 +1,2 @@
1
+ export { FreighterWalletConnector } from './FreighterWalletConnector';
2
+ export { createFreighterProvider } from './FreighterProvider';
@@ -0,0 +1,95 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../_virtual/_tslib.cjs');
7
+ var signerExtensionApi = require('@lobstrco/signer-extension-api');
8
+ var StellarWalletConnector = require('../StellarWalletConnector/StellarWalletConnector.cjs');
9
+ var StellarWallet = require('../../wallet/StellarWallet.cjs');
10
+ require('@stellar/stellar-sdk');
11
+ var getNetworkFromAddress = require('../../utils/getNetworkFromAddress.cjs');
12
+
13
+ /**
14
+ * Lobstr Wallet provider adapter that implements IStellarProvider
15
+ * using the Lobstr signer extension API.
16
+ */
17
+ const createLobstrProvider = () => ({
18
+ // Lobstr SDK doesn't have a close method
19
+ close: () => undefined,
20
+ connect: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
21
+ const publicKey = yield signerExtensionApi.getPublicKey();
22
+ return publicKey;
23
+ }),
24
+ // Lobstr SDK doesn't have a disconnect method
25
+ disconnect: () => _tslib.__awaiter(void 0, void 0, void 0, function* () { return undefined; }),
26
+ // Lobstr uses mainnet by default
27
+ getNetwork: () => _tslib.__awaiter(void 0, void 0, void 0, function* () { return 'PUBLIC'; }),
28
+ isUnlocked: () => _tslib.__awaiter(void 0, void 0, void 0, function* () { return signerExtensionApi.isConnected(); }),
29
+ // Lobstr SDK doesn't support event subscriptions
30
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
31
+ on: (event, callback) => undefined,
32
+ sign: (transactionXdr) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
33
+ const signedXdr = yield signerExtensionApi.signTransaction(transactionXdr);
34
+ return signedXdr;
35
+ }),
36
+ signMessage: (message) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
37
+ var _a;
38
+ const response = yield signerExtensionApi.signMessage(message);
39
+ return (_a = response === null || response === void 0 ? void 0 : response.signedMessage) !== null && _a !== void 0 ? _a : '';
40
+ }),
41
+ });
42
+ class LobstrWalletConnector extends StellarWalletConnector.StellarWalletConnector {
43
+ constructor(opts) {
44
+ super('Lobstr', opts);
45
+ this.name = 'Lobstr';
46
+ this.ChainWallet = StellarWallet.StellarWallet;
47
+ this.connectedChain = 'STELLAR';
48
+ this.supportedChains = ['STELLAR'];
49
+ this.provider = createLobstrProvider();
50
+ }
51
+ static isConnected() {
52
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
53
+ const connected = yield signerExtensionApi.isConnected();
54
+ LobstrWalletConnector.isInstalled = connected;
55
+ return connected;
56
+ });
57
+ }
58
+ getProvider() {
59
+ if (!this.isInstalledOnBrowser()) {
60
+ return undefined;
61
+ }
62
+ if (!this.provider) {
63
+ this.provider = createLobstrProvider();
64
+ }
65
+ return this.provider;
66
+ }
67
+ getNetwork() {
68
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
69
+ const address = yield this.getAddress();
70
+ if (!address) {
71
+ return undefined;
72
+ }
73
+ if (!this.stellarNetworks.length) {
74
+ return undefined;
75
+ }
76
+ const network = yield getNetworkFromAddress.getNetworkFromAddress(address, this.stellarNetworks[0]);
77
+ return network;
78
+ });
79
+ }
80
+ isInstalledOnBrowser() {
81
+ return LobstrWalletConnector.isInstalled;
82
+ }
83
+ /**
84
+ * Lobstr uses its own SDK method to fetch the public key
85
+ * instead of the provider's connect method.
86
+ */
87
+ fetchPublicAddress() {
88
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
89
+ return signerExtensionApi.getPublicKey();
90
+ });
91
+ }
92
+ }
93
+ LobstrWalletConnector.isInstalled = false;
94
+
95
+ exports.LobstrWalletConnector = LobstrWalletConnector;
@@ -0,0 +1,22 @@
1
+ import { Chain } from '@dynamic-labs/wallet-connector-core';
2
+ import { StellarWalletConnector } from '../StellarWalletConnector';
3
+ import { StellarWallet } from '../../wallet';
4
+ import type { IStellarProvider, StellarWalletConnectorProps } from '../../types';
5
+ export declare class LobstrWalletConnector extends StellarWalletConnector {
6
+ name: string;
7
+ ChainWallet: typeof StellarWallet;
8
+ connectedChain: Chain;
9
+ supportedChains: Chain[];
10
+ private provider;
11
+ static isInstalled: boolean;
12
+ constructor(opts: StellarWalletConnectorProps);
13
+ static isConnected(): Promise<boolean>;
14
+ getProvider(): IStellarProvider | undefined;
15
+ getNetwork(): Promise<string | undefined>;
16
+ isInstalledOnBrowser(): boolean;
17
+ /**
18
+ * Lobstr uses its own SDK method to fetch the public key
19
+ * instead of the provider's connect method.
20
+ */
21
+ protected fetchPublicAddress(): Promise<string>;
22
+ }
@@ -0,0 +1,91 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
3
+ import { getPublicKey, isConnected, signTransaction, signMessage } from '@lobstrco/signer-extension-api';
4
+ import { StellarWalletConnector } from '../StellarWalletConnector/StellarWalletConnector.js';
5
+ import { StellarWallet } from '../../wallet/StellarWallet.js';
6
+ import '@stellar/stellar-sdk';
7
+ import { getNetworkFromAddress } from '../../utils/getNetworkFromAddress.js';
8
+
9
+ /**
10
+ * Lobstr Wallet provider adapter that implements IStellarProvider
11
+ * using the Lobstr signer extension API.
12
+ */
13
+ const createLobstrProvider = () => ({
14
+ // Lobstr SDK doesn't have a close method
15
+ close: () => undefined,
16
+ connect: () => __awaiter(void 0, void 0, void 0, function* () {
17
+ const publicKey = yield getPublicKey();
18
+ return publicKey;
19
+ }),
20
+ // Lobstr SDK doesn't have a disconnect method
21
+ disconnect: () => __awaiter(void 0, void 0, void 0, function* () { return undefined; }),
22
+ // Lobstr uses mainnet by default
23
+ getNetwork: () => __awaiter(void 0, void 0, void 0, function* () { return 'PUBLIC'; }),
24
+ isUnlocked: () => __awaiter(void 0, void 0, void 0, function* () { return isConnected(); }),
25
+ // Lobstr SDK doesn't support event subscriptions
26
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
27
+ on: (event, callback) => undefined,
28
+ sign: (transactionXdr) => __awaiter(void 0, void 0, void 0, function* () {
29
+ const signedXdr = yield signTransaction(transactionXdr);
30
+ return signedXdr;
31
+ }),
32
+ signMessage: (message) => __awaiter(void 0, void 0, void 0, function* () {
33
+ var _a;
34
+ const response = yield signMessage(message);
35
+ return (_a = response === null || response === void 0 ? void 0 : response.signedMessage) !== null && _a !== void 0 ? _a : '';
36
+ }),
37
+ });
38
+ class LobstrWalletConnector extends StellarWalletConnector {
39
+ constructor(opts) {
40
+ super('Lobstr', opts);
41
+ this.name = 'Lobstr';
42
+ this.ChainWallet = StellarWallet;
43
+ this.connectedChain = 'STELLAR';
44
+ this.supportedChains = ['STELLAR'];
45
+ this.provider = createLobstrProvider();
46
+ }
47
+ static isConnected() {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ const connected = yield isConnected();
50
+ LobstrWalletConnector.isInstalled = connected;
51
+ return connected;
52
+ });
53
+ }
54
+ getProvider() {
55
+ if (!this.isInstalledOnBrowser()) {
56
+ return undefined;
57
+ }
58
+ if (!this.provider) {
59
+ this.provider = createLobstrProvider();
60
+ }
61
+ return this.provider;
62
+ }
63
+ getNetwork() {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ const address = yield this.getAddress();
66
+ if (!address) {
67
+ return undefined;
68
+ }
69
+ if (!this.stellarNetworks.length) {
70
+ return undefined;
71
+ }
72
+ const network = yield getNetworkFromAddress(address, this.stellarNetworks[0]);
73
+ return network;
74
+ });
75
+ }
76
+ isInstalledOnBrowser() {
77
+ return LobstrWalletConnector.isInstalled;
78
+ }
79
+ /**
80
+ * Lobstr uses its own SDK method to fetch the public key
81
+ * instead of the provider's connect method.
82
+ */
83
+ fetchPublicAddress() {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ return getPublicKey();
86
+ });
87
+ }
88
+ }
89
+ LobstrWalletConnector.isInstalled = false;
90
+
91
+ export { LobstrWalletConnector };
@@ -0,0 +1 @@
1
+ export { LobstrWalletConnector } from './LobstrWalletConnector';