@karn_lat/protocol-sdk 0.1.0-alpha.1
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.
- package/README.md +68 -0
- package/dist/__tests__/setup.d.ts +14 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +44 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/clients/GovernorClient.d.ts +9 -0
- package/dist/clients/GovernorClient.d.ts.map +1 -0
- package/dist/clients/GovernorClient.js +18 -0
- package/dist/clients/GovernorClient.js.map +1 -0
- package/dist/clients/TreasuryClient.d.ts +9 -0
- package/dist/clients/TreasuryClient.d.ts.map +1 -0
- package/dist/clients/TreasuryClient.js +18 -0
- package/dist/clients/TreasuryClient.js.map +1 -0
- package/dist/clients/ValocracyClient.d.ts +13 -0
- package/dist/clients/ValocracyClient.d.ts.map +1 -0
- package/dist/clients/ValocracyClient.js +32 -0
- package/dist/clients/ValocracyClient.js.map +1 -0
- package/dist/clients/index.d.ts +4 -0
- package/dist/clients/index.d.ts.map +1 -0
- package/dist/clients/index.js +4 -0
- package/dist/clients/index.js.map +1 -0
- package/dist/generated/governor/src/index.d.ts +400 -0
- package/dist/generated/governor/src/index.d.ts.map +1 -0
- package/dist/generated/governor/src/index.js +63 -0
- package/dist/generated/governor/src/index.js.map +1 -0
- package/dist/generated/treasury/src/index.d.ts +474 -0
- package/dist/generated/treasury/src/index.d.ts.map +1 -0
- package/dist/generated/treasury/src/index.js +54 -0
- package/dist/generated/treasury/src/index.js.map +1 -0
- package/dist/generated/valocracy/src/index.d.ts +807 -0
- package/dist/generated/valocracy/src/index.d.ts.map +1 -0
- package/dist/generated/valocracy/src/index.js +114 -0
- package/dist/generated/valocracy/src/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/react/hooks/useGovernor.d.ts +24 -0
- package/dist/react/hooks/useGovernor.d.ts.map +1 -0
- package/dist/react/hooks/useGovernor.js +45 -0
- package/dist/react/hooks/useGovernor.js.map +1 -0
- package/dist/react/hooks/useMultiWallet.d.ts +35 -0
- package/dist/react/hooks/useMultiWallet.d.ts.map +1 -0
- package/dist/react/hooks/useMultiWallet.js +87 -0
- package/dist/react/hooks/useMultiWallet.js.map +1 -0
- package/dist/react/hooks/useTreasury.d.ts +14 -0
- package/dist/react/hooks/useTreasury.d.ts.map +1 -0
- package/dist/react/hooks/useTreasury.js +45 -0
- package/dist/react/hooks/useTreasury.js.map +1 -0
- package/dist/react/hooks/useValocracy.d.ts +16 -0
- package/dist/react/hooks/useValocracy.d.ts.map +1 -0
- package/dist/react/hooks/useValocracy.js +54 -0
- package/dist/react/hooks/useValocracy.js.map +1 -0
- package/dist/react/hooks/useWallet.d.ts +13 -0
- package/dist/react/hooks/useWallet.d.ts.map +1 -0
- package/dist/react/hooks/useWallet.js +51 -0
- package/dist/react/hooks/useWallet.js.map +1 -0
- package/dist/react/index.d.ts +7 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +7 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/providers/KarnProvider.d.ts +25 -0
- package/dist/react/providers/KarnProvider.d.ts.map +1 -0
- package/dist/react/providers/KarnProvider.js +25 -0
- package/dist/react/providers/KarnProvider.js.map +1 -0
- package/dist/utils/decay.d.ts +19 -0
- package/dist/utils/decay.d.ts.map +1 -0
- package/dist/utils/decay.js +33 -0
- package/dist/utils/decay.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/polling.d.ts +75 -0
- package/dist/utils/polling.d.ts.map +1 -0
- package/dist/utils/polling.js +104 -0
- package/dist/utils/polling.js.map +1 -0
- package/dist/utils/simulation.d.ts +67 -0
- package/dist/utils/simulation.d.ts.map +1 -0
- package/dist/utils/simulation.js +88 -0
- package/dist/utils/simulation.js.map +1 -0
- package/dist/wallet/WalletManager.d.ts +77 -0
- package/dist/wallet/WalletManager.d.ts.map +1 -0
- package/dist/wallet/WalletManager.js +268 -0
- package/dist/wallet/WalletManager.js.map +1 -0
- package/dist/wallet/adapters/AlbedoAdapter.d.ts +47 -0
- package/dist/wallet/adapters/AlbedoAdapter.d.ts.map +1 -0
- package/dist/wallet/adapters/AlbedoAdapter.js +84 -0
- package/dist/wallet/adapters/AlbedoAdapter.js.map +1 -0
- package/dist/wallet/adapters/FreighterAdapter.d.ts +42 -0
- package/dist/wallet/adapters/FreighterAdapter.d.ts.map +1 -0
- package/dist/wallet/adapters/FreighterAdapter.js +107 -0
- package/dist/wallet/adapters/FreighterAdapter.js.map +1 -0
- package/dist/wallet/adapters/LobstrAdapter.d.ts +34 -0
- package/dist/wallet/adapters/LobstrAdapter.d.ts.map +1 -0
- package/dist/wallet/adapters/LobstrAdapter.js +89 -0
- package/dist/wallet/adapters/LobstrAdapter.js.map +1 -0
- package/dist/wallet/adapters/RabetAdapter.d.ts +39 -0
- package/dist/wallet/adapters/RabetAdapter.d.ts.map +1 -0
- package/dist/wallet/adapters/RabetAdapter.js +104 -0
- package/dist/wallet/adapters/RabetAdapter.js.map +1 -0
- package/dist/wallet/adapters/xBullAdapter.d.ts +41 -0
- package/dist/wallet/adapters/xBullAdapter.d.ts.map +1 -0
- package/dist/wallet/adapters/xBullAdapter.js +72 -0
- package/dist/wallet/adapters/xBullAdapter.js.map +1 -0
- package/dist/wallet/index.d.ts +20 -0
- package/dist/wallet/index.d.ts.map +1 -0
- package/dist/wallet/index.js +23 -0
- package/dist/wallet/index.js.map +1 -0
- package/dist/wallet/types.d.ts +165 -0
- package/dist/wallet/types.d.ts.map +1 -0
- package/dist/wallet/types.js +50 -0
- package/dist/wallet/types.js.map +1 -0
- package/examples/basic-usage.ts +28 -0
- package/jest.config.js +37 -0
- package/package.json +58 -0
- package/src/__tests__/README.md +364 -0
- package/src/__tests__/setup.ts +57 -0
- package/src/__tests__/utils/decay.test.ts +331 -0
- package/src/__tests__/wallet/WalletManager.test.ts +410 -0
- package/src/clients/GovernorClient.ts +23 -0
- package/src/clients/TreasuryClient.ts +23 -0
- package/src/clients/ValocracyClient.ts +48 -0
- package/src/clients/index.ts +3 -0
- package/src/generated/governor/README.md +54 -0
- package/src/generated/governor/package.json +17 -0
- package/src/generated/governor/src/index.ts +428 -0
- package/src/generated/governor/tsconfig.json +98 -0
- package/src/generated/treasury/README.md +54 -0
- package/src/generated/treasury/package.json +17 -0
- package/src/generated/treasury/src/index.ts +495 -0
- package/src/generated/treasury/tsconfig.json +98 -0
- package/src/generated/valocracy/README.md +54 -0
- package/src/generated/valocracy/package.json +17 -0
- package/src/generated/valocracy/src/index.ts +831 -0
- package/src/generated/valocracy/tsconfig.json +98 -0
- package/src/index.ts +4 -0
- package/src/react/hooks/useGovernor.ts +69 -0
- package/src/react/hooks/useMultiWallet.ts +169 -0
- package/src/react/hooks/useTreasury.ts +57 -0
- package/src/react/hooks/useValocracy.ts +66 -0
- package/src/react/hooks/useWallet.ts +60 -0
- package/src/react/index.ts +6 -0
- package/src/react/providers/KarnProvider.tsx +63 -0
- package/src/utils/decay.ts +44 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/polling.ts +193 -0
- package/src/utils/simulation.ts +136 -0
- package/src/wallet/WalletManager.ts +360 -0
- package/src/wallet/adapters/AlbedoAdapter.ts +140 -0
- package/src/wallet/adapters/FreighterAdapter.ts +179 -0
- package/src/wallet/adapters/LobstrAdapter.ts +142 -0
- package/src/wallet/adapters/RabetAdapter.ts +162 -0
- package/src/wallet/adapters/xBullAdapter.ts +123 -0
- package/src/wallet/index.ts +37 -0
- package/src/wallet/types.ts +204 -0
- package/tsconfig.json +40 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages wallet selection, connection state, and provides unified API
|
|
3
|
+
* for interacting with any supported Stellar wallet.
|
|
4
|
+
*/
|
|
5
|
+
import { WalletType, WalletEvent, WalletError, WalletErrorCode, } from './types.js';
|
|
6
|
+
import { FreighterAdapter } from './adapters/FreighterAdapter.js';
|
|
7
|
+
import { AlbedoAdapter } from './adapters/AlbedoAdapter.js';
|
|
8
|
+
import { LobstrAdapter } from './adapters/LobstrAdapter.js';
|
|
9
|
+
import { XBullAdapter } from './adapters/xBullAdapter.js';
|
|
10
|
+
import { RabetAdapter } from './adapters/RabetAdapter.js';
|
|
11
|
+
export class WalletManager {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.currentAdapter = null;
|
|
14
|
+
// Initialize all wallet adapters
|
|
15
|
+
this.adapters = new Map([
|
|
16
|
+
[WalletType.FREIGHTER, new FreighterAdapter()],
|
|
17
|
+
[WalletType.ALBEDO, new AlbedoAdapter()],
|
|
18
|
+
[WalletType.LOBSTR, new LobstrAdapter()],
|
|
19
|
+
[WalletType.XBULL, new XBullAdapter()],
|
|
20
|
+
[WalletType.RABET, new RabetAdapter()],
|
|
21
|
+
]);
|
|
22
|
+
// Initialize state
|
|
23
|
+
this.state = {
|
|
24
|
+
isConnected: false,
|
|
25
|
+
address: null,
|
|
26
|
+
walletType: null,
|
|
27
|
+
isConnecting: false,
|
|
28
|
+
error: null,
|
|
29
|
+
walletName: null,
|
|
30
|
+
};
|
|
31
|
+
// Initialize event listeners
|
|
32
|
+
this.eventListeners = new Map([
|
|
33
|
+
[WalletEvent.CONNECT, new Set()],
|
|
34
|
+
[WalletEvent.DISCONNECT, new Set()],
|
|
35
|
+
[WalletEvent.ACCOUNT_CHANGED, new Set()],
|
|
36
|
+
[WalletEvent.NETWORK_CHANGED, new Set()],
|
|
37
|
+
]);
|
|
38
|
+
// Try to restore previous connection from localStorage
|
|
39
|
+
this.restoreConnection();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get all available (installed) wallets
|
|
43
|
+
*/
|
|
44
|
+
async getAvailableWallets() {
|
|
45
|
+
const available = [];
|
|
46
|
+
for (const adapter of this.adapters.values()) {
|
|
47
|
+
if (await adapter.isAvailable()) {
|
|
48
|
+
available.push(adapter.metadata);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return available;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get all wallet metadata (including unavailable wallets)
|
|
55
|
+
*/
|
|
56
|
+
getAllWallets() {
|
|
57
|
+
return Array.from(this.adapters.values()).map((adapter) => adapter.metadata);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get current wallet state
|
|
61
|
+
*/
|
|
62
|
+
getState() {
|
|
63
|
+
return { ...this.state };
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Connect to a specific wallet
|
|
67
|
+
*/
|
|
68
|
+
async connect(walletType) {
|
|
69
|
+
const adapter = this.adapters.get(walletType);
|
|
70
|
+
if (!adapter) {
|
|
71
|
+
throw new WalletError(`Wallet type ${walletType} is not supported`, WalletErrorCode.UNSUPPORTED_METHOD);
|
|
72
|
+
}
|
|
73
|
+
// Check if wallet is available
|
|
74
|
+
const isAvailable = await adapter.isAvailable();
|
|
75
|
+
if (!isAvailable) {
|
|
76
|
+
throw new WalletError(`${adapter.metadata.name} is not installed`, WalletErrorCode.NOT_INSTALLED, walletType);
|
|
77
|
+
}
|
|
78
|
+
// Disconnect any existing connection
|
|
79
|
+
if (this.currentAdapter) {
|
|
80
|
+
await this.disconnect();
|
|
81
|
+
}
|
|
82
|
+
// Update state
|
|
83
|
+
this.state.isConnecting = true;
|
|
84
|
+
this.state.error = null;
|
|
85
|
+
try {
|
|
86
|
+
// Connect to wallet
|
|
87
|
+
const address = await adapter.connect();
|
|
88
|
+
// Update state
|
|
89
|
+
this.currentAdapter = adapter;
|
|
90
|
+
this.state.isConnected = true;
|
|
91
|
+
this.state.address = address;
|
|
92
|
+
this.state.walletType = walletType;
|
|
93
|
+
this.state.walletName = adapter.metadata.name;
|
|
94
|
+
this.state.isConnecting = false;
|
|
95
|
+
// Save to localStorage for auto-reconnect
|
|
96
|
+
this.saveConnection(walletType, address);
|
|
97
|
+
// Emit connect event
|
|
98
|
+
this.emitEvent(WalletEvent.CONNECT, { walletType, address });
|
|
99
|
+
return {
|
|
100
|
+
walletType,
|
|
101
|
+
address,
|
|
102
|
+
adapter,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
this.state.isConnecting = false;
|
|
107
|
+
this.state.error = error.message;
|
|
108
|
+
if (error instanceof WalletError) {
|
|
109
|
+
throw error;
|
|
110
|
+
}
|
|
111
|
+
throw new WalletError(`Failed to connect to ${adapter.metadata.name}: ${error.message}`, WalletErrorCode.UNKNOWN_ERROR, walletType);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Disconnect from current wallet
|
|
116
|
+
*/
|
|
117
|
+
async disconnect() {
|
|
118
|
+
if (!this.currentAdapter) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const walletType = this.state.walletType;
|
|
122
|
+
try {
|
|
123
|
+
await this.currentAdapter.disconnect();
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
// Ignore disconnect errors
|
|
127
|
+
console.warn('Error during disconnect:', error);
|
|
128
|
+
}
|
|
129
|
+
// Clear state
|
|
130
|
+
this.currentAdapter = null;
|
|
131
|
+
this.state.isConnected = false;
|
|
132
|
+
this.state.address = null;
|
|
133
|
+
this.state.walletType = null;
|
|
134
|
+
this.state.walletName = null;
|
|
135
|
+
this.state.error = null;
|
|
136
|
+
// Clear localStorage
|
|
137
|
+
this.clearConnection();
|
|
138
|
+
// Emit disconnect event
|
|
139
|
+
if (walletType) {
|
|
140
|
+
this.emitEvent(WalletEvent.DISCONNECT, { walletType });
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get current connected address
|
|
145
|
+
*/
|
|
146
|
+
async getAddress() {
|
|
147
|
+
if (!this.currentAdapter) {
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
return await this.currentAdapter.getAddress();
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Check if wallet is connected
|
|
154
|
+
*/
|
|
155
|
+
async isConnected() {
|
|
156
|
+
if (!this.currentAdapter) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
return await this.currentAdapter.isConnected();
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Sign a transaction with current wallet
|
|
163
|
+
*/
|
|
164
|
+
async signTransaction(xdr, options) {
|
|
165
|
+
if (!this.currentAdapter) {
|
|
166
|
+
throw new WalletError('No wallet connected', WalletErrorCode.NOT_CONNECTED);
|
|
167
|
+
}
|
|
168
|
+
return await this.currentAdapter.signTransaction(xdr, options);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Sign a message (if supported by wallet)
|
|
172
|
+
*/
|
|
173
|
+
async signMessage(message) {
|
|
174
|
+
if (!this.currentAdapter) {
|
|
175
|
+
throw new WalletError('No wallet connected', WalletErrorCode.NOT_CONNECTED);
|
|
176
|
+
}
|
|
177
|
+
if (!this.currentAdapter.signMessage) {
|
|
178
|
+
throw new WalletError(`${this.state.walletName} does not support message signing`, WalletErrorCode.UNSUPPORTED_METHOD, this.state.walletType || undefined);
|
|
179
|
+
}
|
|
180
|
+
return await this.currentAdapter.signMessage(message);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get current network (if supported by wallet)
|
|
184
|
+
*/
|
|
185
|
+
async getNetwork() {
|
|
186
|
+
if (!this.currentAdapter) {
|
|
187
|
+
throw new WalletError('No wallet connected', WalletErrorCode.NOT_CONNECTED);
|
|
188
|
+
}
|
|
189
|
+
if (!this.currentAdapter.getNetwork) {
|
|
190
|
+
throw new WalletError(`${this.state.walletName} does not support network detection`, WalletErrorCode.UNSUPPORTED_METHOD, this.state.walletType || undefined);
|
|
191
|
+
}
|
|
192
|
+
return await this.currentAdapter.getNetwork();
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Add event listener
|
|
196
|
+
*/
|
|
197
|
+
on(event, listener) {
|
|
198
|
+
const listeners = this.eventListeners.get(event);
|
|
199
|
+
if (listeners) {
|
|
200
|
+
listeners.add(listener);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Remove event listener
|
|
205
|
+
*/
|
|
206
|
+
off(event, listener) {
|
|
207
|
+
const listeners = this.eventListeners.get(event);
|
|
208
|
+
if (listeners) {
|
|
209
|
+
listeners.delete(listener);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Emit event to all listeners
|
|
214
|
+
*/
|
|
215
|
+
emitEvent(event, payload) {
|
|
216
|
+
const listeners = this.eventListeners.get(event);
|
|
217
|
+
if (listeners) {
|
|
218
|
+
listeners.forEach((listener) => listener(payload));
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Save connection to localStorage for auto-reconnect
|
|
223
|
+
*/
|
|
224
|
+
saveConnection(walletType, address) {
|
|
225
|
+
if (typeof window === 'undefined')
|
|
226
|
+
return;
|
|
227
|
+
try {
|
|
228
|
+
localStorage.setItem('karn_wallet_connection', JSON.stringify({ walletType, address }));
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
console.warn('Failed to save wallet connection:', error);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Clear connection from localStorage
|
|
236
|
+
*/
|
|
237
|
+
clearConnection() {
|
|
238
|
+
if (typeof window === 'undefined')
|
|
239
|
+
return;
|
|
240
|
+
try {
|
|
241
|
+
localStorage.removeItem('karn_wallet_connection');
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
console.warn('Failed to clear wallet connection:', error);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Restore previous connection from localStorage
|
|
249
|
+
*/
|
|
250
|
+
async restoreConnection() {
|
|
251
|
+
if (typeof window === 'undefined')
|
|
252
|
+
return;
|
|
253
|
+
try {
|
|
254
|
+
const saved = localStorage.getItem('karn_wallet_connection');
|
|
255
|
+
if (!saved)
|
|
256
|
+
return;
|
|
257
|
+
const { walletType } = JSON.parse(saved);
|
|
258
|
+
// Try to reconnect silently
|
|
259
|
+
await this.connect(walletType);
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
// Silent fail - user can manually reconnect
|
|
263
|
+
console.debug('Failed to restore wallet connection:', error);
|
|
264
|
+
this.clearConnection();
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=WalletManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletManager.js","sourceRoot":"","sources":["../../src/wallet/WalletManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Albedo Wallet Adapter
|
|
3
|
+
*
|
|
4
|
+
* Web-based Stellar wallet (no extension required)
|
|
5
|
+
* https://albedo.link
|
|
6
|
+
*/
|
|
7
|
+
import { WalletAdapter, WalletType, WalletMetadata, SignTransactionOptions } from '../types.js';
|
|
8
|
+
interface AlbedoAPI {
|
|
9
|
+
publicKey(options?: {
|
|
10
|
+
require_existing?: boolean;
|
|
11
|
+
}): Promise<{
|
|
12
|
+
pubkey: string;
|
|
13
|
+
}>;
|
|
14
|
+
tx(options: {
|
|
15
|
+
xdr: string;
|
|
16
|
+
network?: string;
|
|
17
|
+
pubkey?: string;
|
|
18
|
+
submit?: boolean;
|
|
19
|
+
}): Promise<{
|
|
20
|
+
signed_envelope_xdr: string;
|
|
21
|
+
tx_hash?: string;
|
|
22
|
+
network?: string;
|
|
23
|
+
}>;
|
|
24
|
+
trust(options: {
|
|
25
|
+
asset_code: string;
|
|
26
|
+
asset_issuer: string;
|
|
27
|
+
}): Promise<any>;
|
|
28
|
+
}
|
|
29
|
+
declare global {
|
|
30
|
+
interface Window {
|
|
31
|
+
albedo?: AlbedoAPI;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export declare class AlbedoAdapter implements WalletAdapter {
|
|
35
|
+
type: WalletType;
|
|
36
|
+
metadata: WalletMetadata;
|
|
37
|
+
private currentAddress;
|
|
38
|
+
isAvailable(): Promise<boolean>;
|
|
39
|
+
private loadAlbedoScript;
|
|
40
|
+
connect(): Promise<string>;
|
|
41
|
+
disconnect(): Promise<void>;
|
|
42
|
+
getAddress(): Promise<string | null>;
|
|
43
|
+
isConnected(): Promise<boolean>;
|
|
44
|
+
signTransaction(xdr: string, options?: SignTransactionOptions): Promise<string>;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=AlbedoAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlbedoAdapter.d.ts","sourceRoot":"","sources":["../../../src/wallet/adapters/AlbedoAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,cAAc,EACd,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AAGrB,UAAU,SAAS;IACjB,SAAS,CAAC,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF,EAAE,CAAC,OAAO,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC;QAAE,mBAAmB,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF,KAAK,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC5E;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,CAAC,EAAE,SAAS,CAAC;KACpB;CACF;AAED,qBAAa,aAAc,YAAW,aAAa;IACjD,IAAI,aAAqB;IAEzB,QAAQ,EAAE,cAAc,CAMtB;IAEF,OAAO,CAAC,cAAc,CAAuB;IAEvC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;YASvB,gBAAgB;IAgBxB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAwB1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIpC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,MAAM,CAAC;CA4BnB"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Albedo Wallet Adapter
|
|
3
|
+
*
|
|
4
|
+
* Web-based Stellar wallet (no extension required)
|
|
5
|
+
* https://albedo.link
|
|
6
|
+
*/
|
|
7
|
+
import { WalletType, WalletError, WalletErrorCode, } from '../types.js';
|
|
8
|
+
export class AlbedoAdapter {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.type = WalletType.ALBEDO;
|
|
11
|
+
this.metadata = {
|
|
12
|
+
type: WalletType.ALBEDO,
|
|
13
|
+
name: 'Albedo',
|
|
14
|
+
url: 'https://albedo.link',
|
|
15
|
+
description: 'Web-based Stellar wallet with seamless browser integration',
|
|
16
|
+
isAvailable: true, // Albedo is always available (web-based)
|
|
17
|
+
};
|
|
18
|
+
this.currentAddress = null;
|
|
19
|
+
}
|
|
20
|
+
async isAvailable() {
|
|
21
|
+
// Albedo is web-based, always available
|
|
22
|
+
// Load script if not present
|
|
23
|
+
if (typeof window !== 'undefined' && !window.albedo) {
|
|
24
|
+
await this.loadAlbedoScript();
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
async loadAlbedoScript() {
|
|
29
|
+
return new Promise((resolve, reject) => {
|
|
30
|
+
if (window.albedo) {
|
|
31
|
+
resolve();
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const script = document.createElement('script');
|
|
35
|
+
script.src = 'https://cdn.jsdelivr.net/npm/@albedo-link/intent@latest/lib/albedo.intent.js';
|
|
36
|
+
script.async = true;
|
|
37
|
+
script.onload = () => resolve();
|
|
38
|
+
script.onerror = () => reject(new Error('Failed to load Albedo'));
|
|
39
|
+
document.head.appendChild(script);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
async connect() {
|
|
43
|
+
await this.isAvailable();
|
|
44
|
+
if (!window.albedo) {
|
|
45
|
+
throw new WalletError('Albedo failed to load', WalletErrorCode.NOT_INSTALLED, WalletType.ALBEDO);
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
const result = await window.albedo.publicKey({ require_existing: false });
|
|
49
|
+
this.currentAddress = result.pubkey;
|
|
50
|
+
return result.pubkey;
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
throw new WalletError(`Failed to connect to Albedo: ${error.message}`, WalletErrorCode.USER_REJECTED, WalletType.ALBEDO);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async disconnect() {
|
|
57
|
+
this.currentAddress = null;
|
|
58
|
+
}
|
|
59
|
+
async getAddress() {
|
|
60
|
+
return this.currentAddress;
|
|
61
|
+
}
|
|
62
|
+
async isConnected() {
|
|
63
|
+
return this.currentAddress !== null;
|
|
64
|
+
}
|
|
65
|
+
async signTransaction(xdr, options) {
|
|
66
|
+
await this.isAvailable();
|
|
67
|
+
if (!window.albedo) {
|
|
68
|
+
throw new WalletError('Albedo is not available', WalletErrorCode.NOT_CONNECTED, WalletType.ALBEDO);
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
const result = await window.albedo.tx({
|
|
72
|
+
xdr,
|
|
73
|
+
network: options?.networkPassphrase || 'testnet',
|
|
74
|
+
pubkey: this.currentAddress || undefined,
|
|
75
|
+
submit: false, // Don't auto-submit
|
|
76
|
+
});
|
|
77
|
+
return result.signed_envelope_xdr;
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
throw new WalletError(`Failed to sign transaction: ${error.message}`, WalletErrorCode.SIGNING_FAILED, WalletType.ALBEDO);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=AlbedoAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlbedoAdapter.js","sourceRoot":"","sources":["../../../src/wallet/adapters/AlbedoAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Freighter Wallet Adapter
|
|
3
|
+
*
|
|
4
|
+
* Official Stellar wallet extension
|
|
5
|
+
* https://freighter.app
|
|
6
|
+
*/
|
|
7
|
+
import { WalletAdapter, WalletType, WalletMetadata, SignTransactionOptions } from '../types.js';
|
|
8
|
+
interface FreighterAPI {
|
|
9
|
+
isConnected(): Promise<boolean>;
|
|
10
|
+
getPublicKey(): Promise<string>;
|
|
11
|
+
signTransaction(xdr: string, opts?: {
|
|
12
|
+
network?: string;
|
|
13
|
+
networkPassphrase?: string;
|
|
14
|
+
accountToSign?: string;
|
|
15
|
+
}): Promise<string>;
|
|
16
|
+
getNetwork(): Promise<string>;
|
|
17
|
+
getNetworkDetails(): Promise<{
|
|
18
|
+
network: string;
|
|
19
|
+
networkPassphrase: string;
|
|
20
|
+
}>;
|
|
21
|
+
}
|
|
22
|
+
declare global {
|
|
23
|
+
interface Window {
|
|
24
|
+
freighter?: FreighterAPI;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export declare class FreighterAdapter implements WalletAdapter {
|
|
28
|
+
type: WalletType;
|
|
29
|
+
metadata: WalletMetadata;
|
|
30
|
+
private api;
|
|
31
|
+
constructor();
|
|
32
|
+
private init;
|
|
33
|
+
isAvailable(): Promise<boolean>;
|
|
34
|
+
connect(): Promise<string>;
|
|
35
|
+
disconnect(): Promise<void>;
|
|
36
|
+
getAddress(): Promise<string | null>;
|
|
37
|
+
isConnected(): Promise<boolean>;
|
|
38
|
+
signTransaction(xdr: string, options?: SignTransactionOptions): Promise<string>;
|
|
39
|
+
getNetwork(): Promise<string>;
|
|
40
|
+
}
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=FreighterAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FreighterAdapter.d.ts","sourceRoot":"","sources":["../../../src/wallet/adapters/FreighterAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,cAAc,EACd,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AAGrB,UAAU,YAAY;IACpB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,eAAe,CACb,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9E,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,iBAAiB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9E;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,SAAS,CAAC,EAAE,YAAY,CAAC;KAC1B;CACF;AAED,qBAAa,gBAAiB,YAAW,aAAa;IACpD,IAAI,aAAwB;IAE5B,QAAQ,EAAE,cAAc,CAQtB;IAEF,OAAO,CAAC,GAAG,CAA6B;;IAMxC,OAAO,CAAC,IAAI;IAON,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IA8B1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAapC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU/B,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,MAAM,CAAC;IAiCZ,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAmBpC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Freighter Wallet Adapter
|
|
3
|
+
*
|
|
4
|
+
* Official Stellar wallet extension
|
|
5
|
+
* https://freighter.app
|
|
6
|
+
*/
|
|
7
|
+
import { WalletType, WalletError, WalletErrorCode, } from '../types.js';
|
|
8
|
+
export class FreighterAdapter {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.type = WalletType.FREIGHTER;
|
|
11
|
+
this.metadata = {
|
|
12
|
+
type: WalletType.FREIGHTER,
|
|
13
|
+
name: 'Freighter',
|
|
14
|
+
url: 'https://freighter.app',
|
|
15
|
+
chromeUrl: 'https://chrome.google.com/webstore/detail/freighter/bcacfldlkkdogcmkkibnjlakofdplcbk',
|
|
16
|
+
firefoxUrl: 'https://addons.mozilla.org/en-US/firefox/addon/freighter/',
|
|
17
|
+
description: 'Official Stellar wallet extension with Soroban support',
|
|
18
|
+
isAvailable: false,
|
|
19
|
+
};
|
|
20
|
+
this.api = null;
|
|
21
|
+
this.init();
|
|
22
|
+
}
|
|
23
|
+
init() {
|
|
24
|
+
if (typeof window !== 'undefined' && window.freighter) {
|
|
25
|
+
this.api = window.freighter;
|
|
26
|
+
this.metadata.isAvailable = true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async isAvailable() {
|
|
30
|
+
return this.metadata.isAvailable;
|
|
31
|
+
}
|
|
32
|
+
async connect() {
|
|
33
|
+
if (!this.api) {
|
|
34
|
+
throw new WalletError('Freighter is not installed. Please install from https://freighter.app', WalletErrorCode.NOT_INSTALLED, WalletType.FREIGHTER);
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const publicKey = await this.api.getPublicKey();
|
|
38
|
+
if (!publicKey) {
|
|
39
|
+
throw new WalletError('User rejected connection request', WalletErrorCode.USER_REJECTED, WalletType.FREIGHTER);
|
|
40
|
+
}
|
|
41
|
+
return publicKey;
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
if (error instanceof WalletError)
|
|
45
|
+
throw error;
|
|
46
|
+
throw new WalletError(`Failed to connect to Freighter: ${error.message}`, WalletErrorCode.UNKNOWN_ERROR, WalletType.FREIGHTER);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async disconnect() {
|
|
50
|
+
// Freighter doesn't have explicit disconnect
|
|
51
|
+
// Connection state is managed by extension
|
|
52
|
+
this.api = null;
|
|
53
|
+
}
|
|
54
|
+
async getAddress() {
|
|
55
|
+
if (!this.api)
|
|
56
|
+
return null;
|
|
57
|
+
try {
|
|
58
|
+
const connected = await this.api.isConnected();
|
|
59
|
+
if (!connected)
|
|
60
|
+
return null;
|
|
61
|
+
return await this.api.getPublicKey();
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async isConnected() {
|
|
68
|
+
if (!this.api)
|
|
69
|
+
return false;
|
|
70
|
+
try {
|
|
71
|
+
return await this.api.isConnected();
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async signTransaction(xdr, options) {
|
|
78
|
+
if (!this.api) {
|
|
79
|
+
throw new WalletError('Freighter is not connected', WalletErrorCode.NOT_CONNECTED, WalletType.FREIGHTER);
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
const signedXdr = await this.api.signTransaction(xdr, {
|
|
83
|
+
networkPassphrase: options?.networkPassphrase,
|
|
84
|
+
accountToSign: options?.accountToSign,
|
|
85
|
+
});
|
|
86
|
+
return signedXdr;
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
if (error.message?.includes('User declined')) {
|
|
90
|
+
throw new WalletError('User rejected signature request', WalletErrorCode.USER_REJECTED, WalletType.FREIGHTER);
|
|
91
|
+
}
|
|
92
|
+
throw new WalletError(`Failed to sign transaction: ${error.message}`, WalletErrorCode.SIGNING_FAILED, WalletType.FREIGHTER);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
async getNetwork() {
|
|
96
|
+
if (!this.api) {
|
|
97
|
+
throw new WalletError('Freighter is not connected', WalletErrorCode.NOT_CONNECTED, WalletType.FREIGHTER);
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
return await this.api.getNetwork();
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
throw new WalletError(`Failed to get network: ${error.message}`, WalletErrorCode.NETWORK_ERROR, WalletType.FREIGHTER);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=FreighterAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FreighterAdapter.js","sourceRoot":"","sources":["../../../src/wallet/adapters/FreighterAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,UAAU,EAGV,WAAW,EACX,eAAe,GAChB,MAAM,aAAa,CAAC;AAoBrB,MAAM,OAAO,gBAAgB;IAe3B;QAdA,SAAI,GAAG,UAAU,CAAC,SAAS,CAAC;QAE5B,aAAQ,GAAmB;YACzB,IAAI,EAAE,UAAU,CAAC,SAAS;YAC1B,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,uBAAuB;YAC5B,SAAS,EAAE,sFAAsF;YACjG,UAAU,EAAE,2DAA2D;YACvE,WAAW,EAAE,wDAAwD;YACrE,WAAW,EAAE,KAAK;SACnB,CAAC;QAEM,QAAG,GAAwB,IAAI,CAAC;QAGtC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACtD,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;QACnC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,WAAW,CACnB,uEAAuE,EACvE,eAAe,CAAC,aAAa,EAC7B,UAAU,CAAC,SAAS,CACrB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAChD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,WAAW,CACnB,kCAAkC,EAClC,eAAe,CAAC,aAAa,EAC7B,UAAU,CAAC,SAAS,CACrB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,YAAY,WAAW;gBAAE,MAAM,KAAK,CAAC;YAE9C,MAAM,IAAI,WAAW,CACnB,mCAAmC,KAAK,CAAC,OAAO,EAAE,EAClD,eAAe,CAAC,aAAa,EAC7B,UAAU,CAAC,SAAS,CACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,6CAA6C;QAC7C,2CAA2C;QAC3C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;YAE5B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAE5B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,GAAW,EACX,OAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,WAAW,CACnB,4BAA4B,EAC5B,eAAe,CAAC,aAAa,EAC7B,UAAU,CAAC,SAAS,CACrB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE;gBACpD,iBAAiB,EAAE,OAAO,EAAE,iBAAiB;gBAC7C,aAAa,EAAE,OAAO,EAAE,aAAa;aACtC,CAAC,CAAC;YAEH,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,WAAW,CACnB,iCAAiC,EACjC,eAAe,CAAC,aAAa,EAC7B,UAAU,CAAC,SAAS,CACrB,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,WAAW,CACnB,+BAA+B,KAAK,CAAC,OAAO,EAAE,EAC9C,eAAe,CAAC,cAAc,EAC9B,UAAU,CAAC,SAAS,CACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,WAAW,CACnB,4BAA4B,EAC5B,eAAe,CAAC,aAAa,EAC7B,UAAU,CAAC,SAAS,CACrB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,WAAW,CACnB,0BAA0B,KAAK,CAAC,OAAO,EAAE,EACzC,eAAe,CAAC,aAAa,EAC7B,UAAU,CAAC,SAAS,CACrB,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lobstr Wallet Adapter
|
|
3
|
+
*
|
|
4
|
+
* Popular Stellar mobile wallet with extension support
|
|
5
|
+
* https://lobstr.co
|
|
6
|
+
*/
|
|
7
|
+
import { WalletAdapter, WalletType, WalletMetadata, SignTransactionOptions } from '../types.js';
|
|
8
|
+
interface LobstrAPI {
|
|
9
|
+
isConnected(): Promise<boolean>;
|
|
10
|
+
getPublicKey(): Promise<string>;
|
|
11
|
+
signTransaction(xdr: string, opts?: {
|
|
12
|
+
network?: string;
|
|
13
|
+
}): Promise<string>;
|
|
14
|
+
}
|
|
15
|
+
declare global {
|
|
16
|
+
interface Window {
|
|
17
|
+
lobstrExtension?: LobstrAPI;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export declare class LobstrAdapter implements WalletAdapter {
|
|
21
|
+
type: WalletType;
|
|
22
|
+
metadata: WalletMetadata;
|
|
23
|
+
private api;
|
|
24
|
+
constructor();
|
|
25
|
+
private init;
|
|
26
|
+
isAvailable(): Promise<boolean>;
|
|
27
|
+
connect(): Promise<string>;
|
|
28
|
+
disconnect(): Promise<void>;
|
|
29
|
+
getAddress(): Promise<string | null>;
|
|
30
|
+
isConnected(): Promise<boolean>;
|
|
31
|
+
signTransaction(xdr: string, options?: SignTransactionOptions): Promise<string>;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=LobstrAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LobstrAdapter.d.ts","sourceRoot":"","sources":["../../../src/wallet/adapters/LobstrAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,cAAc,EACd,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AAGrB,UAAU,SAAS;IACjB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5E;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,eAAe,CAAC,EAAE,SAAS,CAAC;KAC7B;CACF;AAED,qBAAa,aAAc,YAAW,aAAa;IACjD,IAAI,aAAqB;IAEzB,QAAQ,EAAE,cAAc,CAOtB;IAEF,OAAO,CAAC,GAAG,CAA0B;;IAMrC,OAAO,CAAC,IAAI;IAON,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IA8B1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAapC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU/B,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,MAAM,CAAC;CAuBnB"}
|