@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,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* xBull Wallet Adapter
|
|
3
|
+
*
|
|
4
|
+
* Modern Stellar wallet extension
|
|
5
|
+
* https://xbull.app
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
WalletAdapter,
|
|
10
|
+
WalletType,
|
|
11
|
+
WalletMetadata,
|
|
12
|
+
SignTransactionOptions,
|
|
13
|
+
WalletError,
|
|
14
|
+
WalletErrorCode,
|
|
15
|
+
} from '../types.js';
|
|
16
|
+
|
|
17
|
+
// xBull SDK types
|
|
18
|
+
interface XBullAPI {
|
|
19
|
+
connect(): Promise<{ publicKey: string }>;
|
|
20
|
+
sign(params: { xdr: string; publicKey?: string; network?: string }): Promise<{ signedXDR: string }>;
|
|
21
|
+
isAvailable(): boolean;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
declare global {
|
|
25
|
+
interface Window {
|
|
26
|
+
xBullSDK?: XBullAPI;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export class XBullAdapter implements WalletAdapter {
|
|
31
|
+
type = WalletType.XBULL;
|
|
32
|
+
|
|
33
|
+
metadata: WalletMetadata = {
|
|
34
|
+
type: WalletType.XBULL,
|
|
35
|
+
name: 'xBull',
|
|
36
|
+
url: 'https://xbull.app',
|
|
37
|
+
chromeUrl: 'https://chrome.google.com/webstore/detail/xbull-wallet/omajpeaffjgmlpmfejkepdlekgkglhhk',
|
|
38
|
+
description: 'Modern Stellar wallet with advanced features',
|
|
39
|
+
isAvailable: false,
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
private api: XBullAPI | null = null;
|
|
43
|
+
private currentAddress: string | null = null;
|
|
44
|
+
|
|
45
|
+
constructor() {
|
|
46
|
+
this.init();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
private init() {
|
|
50
|
+
if (typeof window !== 'undefined' && window.xBullSDK) {
|
|
51
|
+
this.api = window.xBullSDK;
|
|
52
|
+
this.metadata.isAvailable = this.api.isAvailable();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async isAvailable(): Promise<boolean> {
|
|
57
|
+
return this.metadata.isAvailable;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
async connect(): Promise<string> {
|
|
61
|
+
if (!this.api) {
|
|
62
|
+
throw new WalletError(
|
|
63
|
+
'xBull is not installed',
|
|
64
|
+
WalletErrorCode.NOT_INSTALLED,
|
|
65
|
+
WalletType.XBULL
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
try {
|
|
70
|
+
const result = await this.api.connect();
|
|
71
|
+
this.currentAddress = result.publicKey;
|
|
72
|
+
return result.publicKey;
|
|
73
|
+
} catch (error: any) {
|
|
74
|
+
throw new WalletError(
|
|
75
|
+
`Failed to connect to xBull: ${error.message}`,
|
|
76
|
+
WalletErrorCode.USER_REJECTED,
|
|
77
|
+
WalletType.XBULL
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async disconnect(): Promise<void> {
|
|
83
|
+
this.currentAddress = null;
|
|
84
|
+
this.api = null;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
async getAddress(): Promise<string | null> {
|
|
88
|
+
return this.currentAddress;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
async isConnected(): Promise<boolean> {
|
|
92
|
+
return this.currentAddress !== null;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async signTransaction(
|
|
96
|
+
xdr: string,
|
|
97
|
+
options?: SignTransactionOptions
|
|
98
|
+
): Promise<string> {
|
|
99
|
+
if (!this.api) {
|
|
100
|
+
throw new WalletError(
|
|
101
|
+
'xBull is not connected',
|
|
102
|
+
WalletErrorCode.NOT_CONNECTED,
|
|
103
|
+
WalletType.XBULL
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
try {
|
|
108
|
+
const result = await this.api.sign({
|
|
109
|
+
xdr,
|
|
110
|
+
publicKey: this.currentAddress || undefined,
|
|
111
|
+
network: options?.networkPassphrase,
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
return result.signedXDR;
|
|
115
|
+
} catch (error: any) {
|
|
116
|
+
throw new WalletError(
|
|
117
|
+
`Failed to sign transaction: ${error.message}`,
|
|
118
|
+
WalletErrorCode.SIGNING_FAILED,
|
|
119
|
+
WalletType.XBULL
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Karn Protocol Multi-Wallet Support
|
|
3
|
+
*
|
|
4
|
+
* Provides unified interface for connecting to multiple Stellar wallets:
|
|
5
|
+
* - Freighter (official Stellar extension)
|
|
6
|
+
* - Albedo (web-based, no extension required)
|
|
7
|
+
* - Lobstr (popular mobile + extension)
|
|
8
|
+
* - xBull (modern wallet with advanced features)
|
|
9
|
+
* - Rabet (DeFi-focused wallet with built-in swap)
|
|
10
|
+
*
|
|
11
|
+
* - Rabet (DeFi-focused wallet with built-in swap)
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
// Core wallet manager
|
|
15
|
+
export { WalletManager } from './WalletManager.js';
|
|
16
|
+
|
|
17
|
+
// Type definitions
|
|
18
|
+
export {
|
|
19
|
+
WalletType,
|
|
20
|
+
WalletState,
|
|
21
|
+
WalletMetadata,
|
|
22
|
+
WalletAdapter,
|
|
23
|
+
WalletConnection,
|
|
24
|
+
WalletEvent,
|
|
25
|
+
WalletEventPayload,
|
|
26
|
+
WalletEventListener,
|
|
27
|
+
SignTransactionOptions,
|
|
28
|
+
WalletError,
|
|
29
|
+
WalletErrorCode,
|
|
30
|
+
} from './types.js';
|
|
31
|
+
|
|
32
|
+
// Individual wallet adapters (for advanced usage)
|
|
33
|
+
export { FreighterAdapter } from './adapters/FreighterAdapter.js';
|
|
34
|
+
export { AlbedoAdapter } from './adapters/AlbedoAdapter.js';
|
|
35
|
+
export { LobstrAdapter } from './adapters/LobstrAdapter.js';
|
|
36
|
+
export { XBullAdapter } from './adapters/xBullAdapter.js';
|
|
37
|
+
export { RabetAdapter } from './adapters/RabetAdapter.js';
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-wallet support types for Karn Protocol SDK
|
|
3
|
+
*
|
|
4
|
+
* Supports: Freighter, Albedo, Lobstr, xBull, Rabet
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Supported wallet types
|
|
9
|
+
*/
|
|
10
|
+
export enum WalletType {
|
|
11
|
+
FREIGHTER = 'freighter',
|
|
12
|
+
ALBEDO = 'albedo',
|
|
13
|
+
LOBSTR = 'lobstr',
|
|
14
|
+
XBULL = 'xbull',
|
|
15
|
+
RABET = 'rabet',
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Wallet connection state
|
|
20
|
+
*/
|
|
21
|
+
export interface WalletState {
|
|
22
|
+
/** Whether wallet is connected */
|
|
23
|
+
isConnected: boolean;
|
|
24
|
+
|
|
25
|
+
/** Connected wallet address (Stellar public key) */
|
|
26
|
+
address: string | null;
|
|
27
|
+
|
|
28
|
+
/** Currently active wallet type */
|
|
29
|
+
walletType: WalletType | null;
|
|
30
|
+
|
|
31
|
+
/** Connection in progress */
|
|
32
|
+
isConnecting: boolean;
|
|
33
|
+
|
|
34
|
+
/** Error message if any */
|
|
35
|
+
error: string | null;
|
|
36
|
+
|
|
37
|
+
/** Wallet display name */
|
|
38
|
+
walletName: string | null;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Wallet metadata for UI display
|
|
43
|
+
*/
|
|
44
|
+
export interface WalletMetadata {
|
|
45
|
+
/** Wallet type identifier */
|
|
46
|
+
type: WalletType;
|
|
47
|
+
|
|
48
|
+
/** Display name */
|
|
49
|
+
name: string;
|
|
50
|
+
|
|
51
|
+
/** Icon URL or data URI */
|
|
52
|
+
icon?: string;
|
|
53
|
+
|
|
54
|
+
/** Homepage URL */
|
|
55
|
+
url: string;
|
|
56
|
+
|
|
57
|
+
/** Chrome extension URL */
|
|
58
|
+
chromeUrl?: string;
|
|
59
|
+
|
|
60
|
+
/** Firefox addon URL */
|
|
61
|
+
firefoxUrl?: string;
|
|
62
|
+
|
|
63
|
+
/** Description */
|
|
64
|
+
description: string;
|
|
65
|
+
|
|
66
|
+
/** Is installed/available */
|
|
67
|
+
isAvailable: boolean;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Transaction signing options
|
|
72
|
+
*/
|
|
73
|
+
export interface SignTransactionOptions {
|
|
74
|
+
/** Network passphrase (default: Testnet) */
|
|
75
|
+
networkPassphrase?: string;
|
|
76
|
+
|
|
77
|
+
/** Optional account sequence */
|
|
78
|
+
accountToSign?: string;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Wallet adapter interface
|
|
83
|
+
*
|
|
84
|
+
* Each wallet provider implements this interface
|
|
85
|
+
*/
|
|
86
|
+
export interface WalletAdapter {
|
|
87
|
+
/** Wallet type */
|
|
88
|
+
type: WalletType;
|
|
89
|
+
|
|
90
|
+
/** Wallet metadata */
|
|
91
|
+
metadata: WalletMetadata;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Check if wallet is installed/available
|
|
95
|
+
*/
|
|
96
|
+
isAvailable(): Promise<boolean>;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Connect to wallet and request access
|
|
100
|
+
* @returns Public key (Stellar address)
|
|
101
|
+
*/
|
|
102
|
+
connect(): Promise<string>;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Disconnect from wallet
|
|
106
|
+
*/
|
|
107
|
+
disconnect(): Promise<void>;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Get current connected address
|
|
111
|
+
* @returns Public key or null if not connected
|
|
112
|
+
*/
|
|
113
|
+
getAddress(): Promise<string | null>;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Check if wallet is currently connected
|
|
117
|
+
*/
|
|
118
|
+
isConnected(): Promise<boolean>;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Sign a transaction
|
|
122
|
+
* @param xdr Transaction XDR string
|
|
123
|
+
* @param options Signing options
|
|
124
|
+
* @returns Signed transaction XDR
|
|
125
|
+
*/
|
|
126
|
+
signTransaction(xdr: string, options?: SignTransactionOptions): Promise<string>;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Sign arbitrary message (if supported)
|
|
130
|
+
* @param message Message to sign
|
|
131
|
+
* @returns Signature
|
|
132
|
+
*/
|
|
133
|
+
signMessage?(message: string): Promise<string>;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Get network (if supported)
|
|
137
|
+
* @returns Network name (e.g., 'TESTNET', 'PUBLIC')
|
|
138
|
+
*/
|
|
139
|
+
getNetwork?(): Promise<string>;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Wallet connection result
|
|
144
|
+
*/
|
|
145
|
+
export interface WalletConnection {
|
|
146
|
+
/** Wallet type */
|
|
147
|
+
walletType: WalletType;
|
|
148
|
+
|
|
149
|
+
/** Connected address */
|
|
150
|
+
address: string;
|
|
151
|
+
|
|
152
|
+
/** Wallet adapter instance */
|
|
153
|
+
adapter: WalletAdapter;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Wallet event types
|
|
158
|
+
*/
|
|
159
|
+
export enum WalletEvent {
|
|
160
|
+
CONNECT = 'connect',
|
|
161
|
+
DISCONNECT = 'disconnect',
|
|
162
|
+
ACCOUNT_CHANGED = 'accountChanged',
|
|
163
|
+
NETWORK_CHANGED = 'networkChanged',
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Wallet event payload
|
|
168
|
+
*/
|
|
169
|
+
export interface WalletEventPayload {
|
|
170
|
+
walletType: WalletType;
|
|
171
|
+
address?: string;
|
|
172
|
+
network?: string;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Wallet event listener
|
|
177
|
+
*/
|
|
178
|
+
export type WalletEventListener = (payload: WalletEventPayload) => void;
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Wallet error types
|
|
182
|
+
*/
|
|
183
|
+
export class WalletError extends Error {
|
|
184
|
+
constructor(
|
|
185
|
+
message: string,
|
|
186
|
+
public code: WalletErrorCode,
|
|
187
|
+
public walletType?: WalletType
|
|
188
|
+
) {
|
|
189
|
+
super(message);
|
|
190
|
+
this.name = 'WalletError';
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export enum WalletErrorCode {
|
|
195
|
+
NOT_INSTALLED = 'NOT_INSTALLED',
|
|
196
|
+
USER_REJECTED = 'USER_REJECTED',
|
|
197
|
+
UNAUTHORIZED = 'UNAUTHORIZED',
|
|
198
|
+
NETWORK_ERROR = 'NETWORK_ERROR',
|
|
199
|
+
SIGNING_FAILED = 'SIGNING_FAILED',
|
|
200
|
+
NOT_CONNECTED = 'NOT_CONNECTED',
|
|
201
|
+
ALREADY_CONNECTED = 'ALREADY_CONNECTED',
|
|
202
|
+
UNSUPPORTED_METHOD = 'UNSUPPORTED_METHOD',
|
|
203
|
+
UNKNOWN_ERROR = 'UNKNOWN_ERROR',
|
|
204
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "es2020",
|
|
4
|
+
"lib": [
|
|
5
|
+
"dom",
|
|
6
|
+
"es2020"
|
|
7
|
+
],
|
|
8
|
+
"declaration": true,
|
|
9
|
+
"declarationMap": true,
|
|
10
|
+
"sourceMap": true,
|
|
11
|
+
"outDir": "./dist",
|
|
12
|
+
"rootDir": "./src",
|
|
13
|
+
"strict": true,
|
|
14
|
+
"noImplicitAny": true,
|
|
15
|
+
"esModuleInterop": true,
|
|
16
|
+
"skipLibCheck": true,
|
|
17
|
+
"forceConsistentCasingInFileNames": true,
|
|
18
|
+
"module": "ES2020",
|
|
19
|
+
"moduleResolution": "node",
|
|
20
|
+
"allowSyntheticDefaultImports": true,
|
|
21
|
+
"jsx": "react",
|
|
22
|
+
"baseUrl": ".",
|
|
23
|
+
"paths": {
|
|
24
|
+
"@stellar/stellar-sdk/contract": [
|
|
25
|
+
"./node_modules/@stellar/stellar-sdk/lib/contract/index.d.ts"
|
|
26
|
+
],
|
|
27
|
+
"@stellar/stellar-sdk/rpc": [
|
|
28
|
+
"./node_modules/@stellar/stellar-sdk/lib/rpc/index.d.ts"
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"include": [
|
|
33
|
+
"src/**/*"
|
|
34
|
+
],
|
|
35
|
+
"exclude": [
|
|
36
|
+
"node_modules",
|
|
37
|
+
"dist",
|
|
38
|
+
"**/*.test.ts"
|
|
39
|
+
]
|
|
40
|
+
}
|