@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.
Files changed (157) hide show
  1. package/README.md +68 -0
  2. package/dist/__tests__/setup.d.ts +14 -0
  3. package/dist/__tests__/setup.d.ts.map +1 -0
  4. package/dist/__tests__/setup.js +44 -0
  5. package/dist/__tests__/setup.js.map +1 -0
  6. package/dist/clients/GovernorClient.d.ts +9 -0
  7. package/dist/clients/GovernorClient.d.ts.map +1 -0
  8. package/dist/clients/GovernorClient.js +18 -0
  9. package/dist/clients/GovernorClient.js.map +1 -0
  10. package/dist/clients/TreasuryClient.d.ts +9 -0
  11. package/dist/clients/TreasuryClient.d.ts.map +1 -0
  12. package/dist/clients/TreasuryClient.js +18 -0
  13. package/dist/clients/TreasuryClient.js.map +1 -0
  14. package/dist/clients/ValocracyClient.d.ts +13 -0
  15. package/dist/clients/ValocracyClient.d.ts.map +1 -0
  16. package/dist/clients/ValocracyClient.js +32 -0
  17. package/dist/clients/ValocracyClient.js.map +1 -0
  18. package/dist/clients/index.d.ts +4 -0
  19. package/dist/clients/index.d.ts.map +1 -0
  20. package/dist/clients/index.js +4 -0
  21. package/dist/clients/index.js.map +1 -0
  22. package/dist/generated/governor/src/index.d.ts +400 -0
  23. package/dist/generated/governor/src/index.d.ts.map +1 -0
  24. package/dist/generated/governor/src/index.js +63 -0
  25. package/dist/generated/governor/src/index.js.map +1 -0
  26. package/dist/generated/treasury/src/index.d.ts +474 -0
  27. package/dist/generated/treasury/src/index.d.ts.map +1 -0
  28. package/dist/generated/treasury/src/index.js +54 -0
  29. package/dist/generated/treasury/src/index.js.map +1 -0
  30. package/dist/generated/valocracy/src/index.d.ts +807 -0
  31. package/dist/generated/valocracy/src/index.d.ts.map +1 -0
  32. package/dist/generated/valocracy/src/index.js +114 -0
  33. package/dist/generated/valocracy/src/index.js.map +1 -0
  34. package/dist/index.d.ts +5 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +5 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/react/hooks/useGovernor.d.ts +24 -0
  39. package/dist/react/hooks/useGovernor.d.ts.map +1 -0
  40. package/dist/react/hooks/useGovernor.js +45 -0
  41. package/dist/react/hooks/useGovernor.js.map +1 -0
  42. package/dist/react/hooks/useMultiWallet.d.ts +35 -0
  43. package/dist/react/hooks/useMultiWallet.d.ts.map +1 -0
  44. package/dist/react/hooks/useMultiWallet.js +87 -0
  45. package/dist/react/hooks/useMultiWallet.js.map +1 -0
  46. package/dist/react/hooks/useTreasury.d.ts +14 -0
  47. package/dist/react/hooks/useTreasury.d.ts.map +1 -0
  48. package/dist/react/hooks/useTreasury.js +45 -0
  49. package/dist/react/hooks/useTreasury.js.map +1 -0
  50. package/dist/react/hooks/useValocracy.d.ts +16 -0
  51. package/dist/react/hooks/useValocracy.d.ts.map +1 -0
  52. package/dist/react/hooks/useValocracy.js +54 -0
  53. package/dist/react/hooks/useValocracy.js.map +1 -0
  54. package/dist/react/hooks/useWallet.d.ts +13 -0
  55. package/dist/react/hooks/useWallet.d.ts.map +1 -0
  56. package/dist/react/hooks/useWallet.js +51 -0
  57. package/dist/react/hooks/useWallet.js.map +1 -0
  58. package/dist/react/index.d.ts +7 -0
  59. package/dist/react/index.d.ts.map +1 -0
  60. package/dist/react/index.js +7 -0
  61. package/dist/react/index.js.map +1 -0
  62. package/dist/react/providers/KarnProvider.d.ts +25 -0
  63. package/dist/react/providers/KarnProvider.d.ts.map +1 -0
  64. package/dist/react/providers/KarnProvider.js +25 -0
  65. package/dist/react/providers/KarnProvider.js.map +1 -0
  66. package/dist/utils/decay.d.ts +19 -0
  67. package/dist/utils/decay.d.ts.map +1 -0
  68. package/dist/utils/decay.js +33 -0
  69. package/dist/utils/decay.js.map +1 -0
  70. package/dist/utils/index.d.ts +4 -0
  71. package/dist/utils/index.d.ts.map +1 -0
  72. package/dist/utils/index.js +4 -0
  73. package/dist/utils/index.js.map +1 -0
  74. package/dist/utils/polling.d.ts +75 -0
  75. package/dist/utils/polling.d.ts.map +1 -0
  76. package/dist/utils/polling.js +104 -0
  77. package/dist/utils/polling.js.map +1 -0
  78. package/dist/utils/simulation.d.ts +67 -0
  79. package/dist/utils/simulation.d.ts.map +1 -0
  80. package/dist/utils/simulation.js +88 -0
  81. package/dist/utils/simulation.js.map +1 -0
  82. package/dist/wallet/WalletManager.d.ts +77 -0
  83. package/dist/wallet/WalletManager.d.ts.map +1 -0
  84. package/dist/wallet/WalletManager.js +268 -0
  85. package/dist/wallet/WalletManager.js.map +1 -0
  86. package/dist/wallet/adapters/AlbedoAdapter.d.ts +47 -0
  87. package/dist/wallet/adapters/AlbedoAdapter.d.ts.map +1 -0
  88. package/dist/wallet/adapters/AlbedoAdapter.js +84 -0
  89. package/dist/wallet/adapters/AlbedoAdapter.js.map +1 -0
  90. package/dist/wallet/adapters/FreighterAdapter.d.ts +42 -0
  91. package/dist/wallet/adapters/FreighterAdapter.d.ts.map +1 -0
  92. package/dist/wallet/adapters/FreighterAdapter.js +107 -0
  93. package/dist/wallet/adapters/FreighterAdapter.js.map +1 -0
  94. package/dist/wallet/adapters/LobstrAdapter.d.ts +34 -0
  95. package/dist/wallet/adapters/LobstrAdapter.d.ts.map +1 -0
  96. package/dist/wallet/adapters/LobstrAdapter.js +89 -0
  97. package/dist/wallet/adapters/LobstrAdapter.js.map +1 -0
  98. package/dist/wallet/adapters/RabetAdapter.d.ts +39 -0
  99. package/dist/wallet/adapters/RabetAdapter.d.ts.map +1 -0
  100. package/dist/wallet/adapters/RabetAdapter.js +104 -0
  101. package/dist/wallet/adapters/RabetAdapter.js.map +1 -0
  102. package/dist/wallet/adapters/xBullAdapter.d.ts +41 -0
  103. package/dist/wallet/adapters/xBullAdapter.d.ts.map +1 -0
  104. package/dist/wallet/adapters/xBullAdapter.js +72 -0
  105. package/dist/wallet/adapters/xBullAdapter.js.map +1 -0
  106. package/dist/wallet/index.d.ts +20 -0
  107. package/dist/wallet/index.d.ts.map +1 -0
  108. package/dist/wallet/index.js +23 -0
  109. package/dist/wallet/index.js.map +1 -0
  110. package/dist/wallet/types.d.ts +165 -0
  111. package/dist/wallet/types.d.ts.map +1 -0
  112. package/dist/wallet/types.js +50 -0
  113. package/dist/wallet/types.js.map +1 -0
  114. package/examples/basic-usage.ts +28 -0
  115. package/jest.config.js +37 -0
  116. package/package.json +58 -0
  117. package/src/__tests__/README.md +364 -0
  118. package/src/__tests__/setup.ts +57 -0
  119. package/src/__tests__/utils/decay.test.ts +331 -0
  120. package/src/__tests__/wallet/WalletManager.test.ts +410 -0
  121. package/src/clients/GovernorClient.ts +23 -0
  122. package/src/clients/TreasuryClient.ts +23 -0
  123. package/src/clients/ValocracyClient.ts +48 -0
  124. package/src/clients/index.ts +3 -0
  125. package/src/generated/governor/README.md +54 -0
  126. package/src/generated/governor/package.json +17 -0
  127. package/src/generated/governor/src/index.ts +428 -0
  128. package/src/generated/governor/tsconfig.json +98 -0
  129. package/src/generated/treasury/README.md +54 -0
  130. package/src/generated/treasury/package.json +17 -0
  131. package/src/generated/treasury/src/index.ts +495 -0
  132. package/src/generated/treasury/tsconfig.json +98 -0
  133. package/src/generated/valocracy/README.md +54 -0
  134. package/src/generated/valocracy/package.json +17 -0
  135. package/src/generated/valocracy/src/index.ts +831 -0
  136. package/src/generated/valocracy/tsconfig.json +98 -0
  137. package/src/index.ts +4 -0
  138. package/src/react/hooks/useGovernor.ts +69 -0
  139. package/src/react/hooks/useMultiWallet.ts +169 -0
  140. package/src/react/hooks/useTreasury.ts +57 -0
  141. package/src/react/hooks/useValocracy.ts +66 -0
  142. package/src/react/hooks/useWallet.ts +60 -0
  143. package/src/react/index.ts +6 -0
  144. package/src/react/providers/KarnProvider.tsx +63 -0
  145. package/src/utils/decay.ts +44 -0
  146. package/src/utils/index.ts +3 -0
  147. package/src/utils/polling.ts +193 -0
  148. package/src/utils/simulation.ts +136 -0
  149. package/src/wallet/WalletManager.ts +360 -0
  150. package/src/wallet/adapters/AlbedoAdapter.ts +140 -0
  151. package/src/wallet/adapters/FreighterAdapter.ts +179 -0
  152. package/src/wallet/adapters/LobstrAdapter.ts +142 -0
  153. package/src/wallet/adapters/RabetAdapter.ts +162 -0
  154. package/src/wallet/adapters/xBullAdapter.ts +123 -0
  155. package/src/wallet/index.ts +37 -0
  156. package/src/wallet/types.ts +204 -0
  157. package/tsconfig.json +40 -0
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Lobstr Wallet Adapter
3
+ *
4
+ * Popular Stellar mobile wallet with extension support
5
+ * https://lobstr.co
6
+ */
7
+ import { WalletType, WalletError, WalletErrorCode, } from '../types.js';
8
+ export class LobstrAdapter {
9
+ constructor() {
10
+ this.type = WalletType.LOBSTR;
11
+ this.metadata = {
12
+ type: WalletType.LOBSTR,
13
+ name: 'Lobstr',
14
+ url: 'https://lobstr.co',
15
+ chromeUrl: 'https://chrome.google.com/webstore/detail/lobstr-extension/cmgchfbiagidgmjmfjkhldngnmlfpnog',
16
+ description: 'Popular Stellar wallet with mobile and extension support',
17
+ isAvailable: false,
18
+ };
19
+ this.api = null;
20
+ this.init();
21
+ }
22
+ init() {
23
+ if (typeof window !== 'undefined' && window.lobstrExtension) {
24
+ this.api = window.lobstrExtension;
25
+ this.metadata.isAvailable = true;
26
+ }
27
+ }
28
+ async isAvailable() {
29
+ return this.metadata.isAvailable;
30
+ }
31
+ async connect() {
32
+ if (!this.api) {
33
+ throw new WalletError('Lobstr Extension is not installed', WalletErrorCode.NOT_INSTALLED, WalletType.LOBSTR);
34
+ }
35
+ try {
36
+ const publicKey = await this.api.getPublicKey();
37
+ if (!publicKey) {
38
+ throw new WalletError('User rejected connection request', WalletErrorCode.USER_REJECTED, WalletType.LOBSTR);
39
+ }
40
+ return publicKey;
41
+ }
42
+ catch (error) {
43
+ if (error instanceof WalletError)
44
+ throw error;
45
+ throw new WalletError(`Failed to connect to Lobstr: ${error.message}`, WalletErrorCode.UNKNOWN_ERROR, WalletType.LOBSTR);
46
+ }
47
+ }
48
+ async disconnect() {
49
+ this.api = null;
50
+ }
51
+ async getAddress() {
52
+ if (!this.api)
53
+ return null;
54
+ try {
55
+ const connected = await this.api.isConnected();
56
+ if (!connected)
57
+ return null;
58
+ return await this.api.getPublicKey();
59
+ }
60
+ catch {
61
+ return null;
62
+ }
63
+ }
64
+ async isConnected() {
65
+ if (!this.api)
66
+ return false;
67
+ try {
68
+ return await this.api.isConnected();
69
+ }
70
+ catch {
71
+ return false;
72
+ }
73
+ }
74
+ async signTransaction(xdr, options) {
75
+ if (!this.api) {
76
+ throw new WalletError('Lobstr is not connected', WalletErrorCode.NOT_CONNECTED, WalletType.LOBSTR);
77
+ }
78
+ try {
79
+ const signedXdr = await this.api.signTransaction(xdr, {
80
+ network: options?.networkPassphrase,
81
+ });
82
+ return signedXdr;
83
+ }
84
+ catch (error) {
85
+ throw new WalletError(`Failed to sign transaction: ${error.message}`, WalletErrorCode.SIGNING_FAILED, WalletType.LOBSTR);
86
+ }
87
+ }
88
+ }
89
+ //# sourceMappingURL=LobstrAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LobstrAdapter.js","sourceRoot":"","sources":["../../../src/wallet/adapters/LobstrAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Rabet Wallet Adapter
3
+ *
4
+ * Modern Stellar wallet with built-in swap features
5
+ * https://rabet.io
6
+ */
7
+ import { WalletAdapter, WalletType, WalletMetadata, SignTransactionOptions } from '../types.js';
8
+ interface RabetAPI {
9
+ connect(): Promise<{
10
+ publicKey: string;
11
+ }>;
12
+ sign(xdr: string, opts?: {
13
+ network?: string;
14
+ }): Promise<{
15
+ xdr: string;
16
+ }>;
17
+ disconnect(): Promise<void>;
18
+ isConnected(): Promise<boolean>;
19
+ }
20
+ declare global {
21
+ interface Window {
22
+ rabet?: RabetAPI;
23
+ }
24
+ }
25
+ export declare class RabetAdapter implements WalletAdapter {
26
+ type: WalletType;
27
+ metadata: WalletMetadata;
28
+ private api;
29
+ constructor();
30
+ private init;
31
+ isAvailable(): Promise<boolean>;
32
+ connect(): Promise<string>;
33
+ disconnect(): Promise<void>;
34
+ getAddress(): Promise<string | null>;
35
+ isConnected(): Promise<boolean>;
36
+ signTransaction(xdr: string, options?: SignTransactionOptions): Promise<string>;
37
+ }
38
+ export {};
39
+ //# sourceMappingURL=RabetAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RabetAdapter.d.ts","sourceRoot":"","sources":["../../../src/wallet/adapters/RabetAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,cAAc,EACd,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AAGrB,UAAU,QAAQ;IAChB,OAAO,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,CAAC,EAAE,QAAQ,CAAC;KAClB;CACF;AAED,qBAAa,YAAa,YAAW,aAAa;IAChD,IAAI,aAAoB;IAExB,QAAQ,EAAE,cAAc,CAQtB;IAEF,OAAO,CAAC,GAAG,CAAyB;;IAMpC,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;IAW3B,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBpC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU/B,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,MAAM,CAAC;CA+BnB"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Rabet Wallet Adapter
3
+ *
4
+ * Modern Stellar wallet with built-in swap features
5
+ * https://rabet.io
6
+ */
7
+ import { WalletType, WalletError, WalletErrorCode, } from '../types.js';
8
+ export class RabetAdapter {
9
+ constructor() {
10
+ this.type = WalletType.RABET;
11
+ this.metadata = {
12
+ type: WalletType.RABET,
13
+ name: 'Rabet',
14
+ url: 'https://rabet.io',
15
+ chromeUrl: 'https://chrome.google.com/webstore/detail/rabet/aapjbdekemjjmldlfinkhcmkbcfikkde',
16
+ firefoxUrl: 'https://addons.mozilla.org/en-US/firefox/addon/rabet/',
17
+ description: 'Modern Stellar wallet with built-in swap and DeFi features',
18
+ isAvailable: false,
19
+ };
20
+ this.api = null;
21
+ this.init();
22
+ }
23
+ init() {
24
+ if (typeof window !== 'undefined' && window.rabet) {
25
+ this.api = window.rabet;
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('Rabet is not installed', WalletErrorCode.NOT_INSTALLED, WalletType.RABET);
35
+ }
36
+ try {
37
+ const result = await this.api.connect();
38
+ if (!result.publicKey) {
39
+ throw new WalletError('User rejected connection request', WalletErrorCode.USER_REJECTED, WalletType.RABET);
40
+ }
41
+ return result.publicKey;
42
+ }
43
+ catch (error) {
44
+ if (error instanceof WalletError)
45
+ throw error;
46
+ throw new WalletError(`Failed to connect to Rabet: ${error.message}`, WalletErrorCode.UNKNOWN_ERROR, WalletType.RABET);
47
+ }
48
+ }
49
+ async disconnect() {
50
+ if (this.api) {
51
+ try {
52
+ await this.api.disconnect();
53
+ }
54
+ catch {
55
+ // Ignore disconnect errors
56
+ }
57
+ }
58
+ this.api = null;
59
+ }
60
+ async getAddress() {
61
+ if (!this.api)
62
+ return null;
63
+ try {
64
+ const connected = await this.api.isConnected();
65
+ if (!connected)
66
+ return null;
67
+ // Rabet doesn't expose getPublicKey directly
68
+ // Need to reconnect to get address
69
+ const result = await this.api.connect();
70
+ return result.publicKey;
71
+ }
72
+ catch {
73
+ return null;
74
+ }
75
+ }
76
+ async isConnected() {
77
+ if (!this.api)
78
+ return false;
79
+ try {
80
+ return await this.api.isConnected();
81
+ }
82
+ catch {
83
+ return false;
84
+ }
85
+ }
86
+ async signTransaction(xdr, options) {
87
+ if (!this.api) {
88
+ throw new WalletError('Rabet is not connected', WalletErrorCode.NOT_CONNECTED, WalletType.RABET);
89
+ }
90
+ try {
91
+ const result = await this.api.sign(xdr, {
92
+ network: options?.networkPassphrase,
93
+ });
94
+ return result.xdr;
95
+ }
96
+ catch (error) {
97
+ if (error.message?.includes('User cancelled')) {
98
+ throw new WalletError('User rejected signature request', WalletErrorCode.USER_REJECTED, WalletType.RABET);
99
+ }
100
+ throw new WalletError(`Failed to sign transaction: ${error.message}`, WalletErrorCode.SIGNING_FAILED, WalletType.RABET);
101
+ }
102
+ }
103
+ }
104
+ //# sourceMappingURL=RabetAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RabetAdapter.js","sourceRoot":"","sources":["../../../src/wallet/adapters/RabetAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * xBull Wallet Adapter
3
+ *
4
+ * Modern Stellar wallet extension
5
+ * https://xbull.app
6
+ */
7
+ import { WalletAdapter, WalletType, WalletMetadata, SignTransactionOptions } from '../types.js';
8
+ interface XBullAPI {
9
+ connect(): Promise<{
10
+ publicKey: string;
11
+ }>;
12
+ sign(params: {
13
+ xdr: string;
14
+ publicKey?: string;
15
+ network?: string;
16
+ }): Promise<{
17
+ signedXDR: string;
18
+ }>;
19
+ isAvailable(): boolean;
20
+ }
21
+ declare global {
22
+ interface Window {
23
+ xBullSDK?: XBullAPI;
24
+ }
25
+ }
26
+ export declare class XBullAdapter implements WalletAdapter {
27
+ type: WalletType;
28
+ metadata: WalletMetadata;
29
+ private api;
30
+ private currentAddress;
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
+ }
40
+ export {};
41
+ //# sourceMappingURL=xBullAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xBullAdapter.d.ts","sourceRoot":"","sources":["../../../src/wallet/adapters/xBullAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,cAAc,EACd,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AAGrB,UAAU,QAAQ;IAChB,OAAO,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpG,WAAW,IAAI,OAAO,CAAC;CACxB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACrB;CACF;AAED,qBAAa,YAAa,YAAW,aAAa;IAChD,IAAI,aAAoB;IAExB,QAAQ,EAAE,cAAc,CAOtB;IAEF,OAAO,CAAC,GAAG,CAAyB;IACpC,OAAO,CAAC,cAAc,CAAuB;;IAM7C,OAAO,CAAC,IAAI;IAON,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAsB1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,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;CAyBnB"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * xBull Wallet Adapter
3
+ *
4
+ * Modern Stellar wallet extension
5
+ * https://xbull.app
6
+ */
7
+ import { WalletType, WalletError, WalletErrorCode, } from '../types.js';
8
+ export class XBullAdapter {
9
+ constructor() {
10
+ this.type = WalletType.XBULL;
11
+ this.metadata = {
12
+ type: WalletType.XBULL,
13
+ name: 'xBull',
14
+ url: 'https://xbull.app',
15
+ chromeUrl: 'https://chrome.google.com/webstore/detail/xbull-wallet/omajpeaffjgmlpmfejkepdlekgkglhhk',
16
+ description: 'Modern Stellar wallet with advanced features',
17
+ isAvailable: false,
18
+ };
19
+ this.api = null;
20
+ this.currentAddress = null;
21
+ this.init();
22
+ }
23
+ init() {
24
+ if (typeof window !== 'undefined' && window.xBullSDK) {
25
+ this.api = window.xBullSDK;
26
+ this.metadata.isAvailable = this.api.isAvailable();
27
+ }
28
+ }
29
+ async isAvailable() {
30
+ return this.metadata.isAvailable;
31
+ }
32
+ async connect() {
33
+ if (!this.api) {
34
+ throw new WalletError('xBull is not installed', WalletErrorCode.NOT_INSTALLED, WalletType.XBULL);
35
+ }
36
+ try {
37
+ const result = await this.api.connect();
38
+ this.currentAddress = result.publicKey;
39
+ return result.publicKey;
40
+ }
41
+ catch (error) {
42
+ throw new WalletError(`Failed to connect to xBull: ${error.message}`, WalletErrorCode.USER_REJECTED, WalletType.XBULL);
43
+ }
44
+ }
45
+ async disconnect() {
46
+ this.currentAddress = null;
47
+ this.api = null;
48
+ }
49
+ async getAddress() {
50
+ return this.currentAddress;
51
+ }
52
+ async isConnected() {
53
+ return this.currentAddress !== null;
54
+ }
55
+ async signTransaction(xdr, options) {
56
+ if (!this.api) {
57
+ throw new WalletError('xBull is not connected', WalletErrorCode.NOT_CONNECTED, WalletType.XBULL);
58
+ }
59
+ try {
60
+ const result = await this.api.sign({
61
+ xdr,
62
+ publicKey: this.currentAddress || undefined,
63
+ network: options?.networkPassphrase,
64
+ });
65
+ return result.signedXDR;
66
+ }
67
+ catch (error) {
68
+ throw new WalletError(`Failed to sign transaction: ${error.message}`, WalletErrorCode.SIGNING_FAILED, WalletType.XBULL);
69
+ }
70
+ }
71
+ }
72
+ //# sourceMappingURL=xBullAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xBullAdapter.js","sourceRoot":"","sources":["../../../src/wallet/adapters/xBullAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,UAAU,EAGV,WAAW,EACX,eAAe,GAChB,MAAM,aAAa,CAAC;AAerB,MAAM,OAAO,YAAY;IAevB;QAdA,SAAI,GAAG,UAAU,CAAC,KAAK,CAAC;QAExB,aAAQ,GAAmB;YACzB,IAAI,EAAE,UAAU,CAAC,KAAK;YACtB,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,mBAAmB;YACxB,SAAS,EAAE,yFAAyF;YACpG,WAAW,EAAE,8CAA8C;YAC3D,WAAW,EAAE,KAAK;SACnB,CAAC;QAEM,QAAG,GAAoB,IAAI,CAAC;QAC5B,mBAAc,GAAkB,IAAI,CAAC;QAG3C,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrD,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrD,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,wBAAwB,EACxB,eAAe,CAAC,aAAa,EAC7B,UAAU,CAAC,KAAK,CACjB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC;YACvC,OAAO,MAAM,CAAC,SAAS,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,WAAW,CACnB,+BAA+B,KAAK,CAAC,OAAO,EAAE,EAC9C,eAAe,CAAC,aAAa,EAC7B,UAAU,CAAC,KAAK,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,GAAW,EACX,OAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,WAAW,CACnB,wBAAwB,EACxB,eAAe,CAAC,aAAa,EAC7B,UAAU,CAAC,KAAK,CACjB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBACjC,GAAG;gBACH,SAAS,EAAE,IAAI,CAAC,cAAc,IAAI,SAAS;gBAC3C,OAAO,EAAE,OAAO,EAAE,iBAAiB;aACpC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,SAAS,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,WAAW,CACnB,+BAA+B,KAAK,CAAC,OAAO,EAAE,EAC9C,eAAe,CAAC,cAAc,EAC9B,UAAU,CAAC,KAAK,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,20 @@
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
+ export { WalletManager } from './WalletManager.js';
14
+ export { WalletType, WalletState, WalletMetadata, WalletAdapter, WalletConnection, WalletEvent, WalletEventPayload, WalletEventListener, SignTransactionOptions, WalletError, WalletErrorCode, } from './types.js';
15
+ export { FreighterAdapter } from './adapters/FreighterAdapter.js';
16
+ export { AlbedoAdapter } from './adapters/AlbedoAdapter.js';
17
+ export { LobstrAdapter } from './adapters/LobstrAdapter.js';
18
+ export { XBullAdapter } from './adapters/xBullAdapter.js';
19
+ export { RabetAdapter } from './adapters/RabetAdapter.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EACL,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,23 @@
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
+ // Core wallet manager
14
+ export { WalletManager } from './WalletManager.js';
15
+ // Type definitions
16
+ export { WalletType, WalletEvent, WalletError, WalletErrorCode, } from './types.js';
17
+ // Individual wallet adapters (for advanced usage)
18
+ export { FreighterAdapter } from './adapters/FreighterAdapter.js';
19
+ export { AlbedoAdapter } from './adapters/AlbedoAdapter.js';
20
+ export { LobstrAdapter } from './adapters/LobstrAdapter.js';
21
+ export { XBullAdapter } from './adapters/xBullAdapter.js';
22
+ export { RabetAdapter } from './adapters/RabetAdapter.js';
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,sBAAsB;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,mBAAmB;AACnB,OAAO,EACL,UAAU,EAKV,WAAW,EAIX,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,kDAAkD;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Multi-wallet support types for Karn Protocol SDK
3
+ *
4
+ * Supports: Freighter, Albedo, Lobstr, xBull, Rabet
5
+ */
6
+ /**
7
+ * Supported wallet types
8
+ */
9
+ export declare enum WalletType {
10
+ FREIGHTER = "freighter",
11
+ ALBEDO = "albedo",
12
+ LOBSTR = "lobstr",
13
+ XBULL = "xbull",
14
+ RABET = "rabet"
15
+ }
16
+ /**
17
+ * Wallet connection state
18
+ */
19
+ export interface WalletState {
20
+ /** Whether wallet is connected */
21
+ isConnected: boolean;
22
+ /** Connected wallet address (Stellar public key) */
23
+ address: string | null;
24
+ /** Currently active wallet type */
25
+ walletType: WalletType | null;
26
+ /** Connection in progress */
27
+ isConnecting: boolean;
28
+ /** Error message if any */
29
+ error: string | null;
30
+ /** Wallet display name */
31
+ walletName: string | null;
32
+ }
33
+ /**
34
+ * Wallet metadata for UI display
35
+ */
36
+ export interface WalletMetadata {
37
+ /** Wallet type identifier */
38
+ type: WalletType;
39
+ /** Display name */
40
+ name: string;
41
+ /** Icon URL or data URI */
42
+ icon?: string;
43
+ /** Homepage URL */
44
+ url: string;
45
+ /** Chrome extension URL */
46
+ chromeUrl?: string;
47
+ /** Firefox addon URL */
48
+ firefoxUrl?: string;
49
+ /** Description */
50
+ description: string;
51
+ /** Is installed/available */
52
+ isAvailable: boolean;
53
+ }
54
+ /**
55
+ * Transaction signing options
56
+ */
57
+ export interface SignTransactionOptions {
58
+ /** Network passphrase (default: Testnet) */
59
+ networkPassphrase?: string;
60
+ /** Optional account sequence */
61
+ accountToSign?: string;
62
+ }
63
+ /**
64
+ * Wallet adapter interface
65
+ *
66
+ * Each wallet provider implements this interface
67
+ */
68
+ export interface WalletAdapter {
69
+ /** Wallet type */
70
+ type: WalletType;
71
+ /** Wallet metadata */
72
+ metadata: WalletMetadata;
73
+ /**
74
+ * Check if wallet is installed/available
75
+ */
76
+ isAvailable(): Promise<boolean>;
77
+ /**
78
+ * Connect to wallet and request access
79
+ * @returns Public key (Stellar address)
80
+ */
81
+ connect(): Promise<string>;
82
+ /**
83
+ * Disconnect from wallet
84
+ */
85
+ disconnect(): Promise<void>;
86
+ /**
87
+ * Get current connected address
88
+ * @returns Public key or null if not connected
89
+ */
90
+ getAddress(): Promise<string | null>;
91
+ /**
92
+ * Check if wallet is currently connected
93
+ */
94
+ isConnected(): Promise<boolean>;
95
+ /**
96
+ * Sign a transaction
97
+ * @param xdr Transaction XDR string
98
+ * @param options Signing options
99
+ * @returns Signed transaction XDR
100
+ */
101
+ signTransaction(xdr: string, options?: SignTransactionOptions): Promise<string>;
102
+ /**
103
+ * Sign arbitrary message (if supported)
104
+ * @param message Message to sign
105
+ * @returns Signature
106
+ */
107
+ signMessage?(message: string): Promise<string>;
108
+ /**
109
+ * Get network (if supported)
110
+ * @returns Network name (e.g., 'TESTNET', 'PUBLIC')
111
+ */
112
+ getNetwork?(): Promise<string>;
113
+ }
114
+ /**
115
+ * Wallet connection result
116
+ */
117
+ export interface WalletConnection {
118
+ /** Wallet type */
119
+ walletType: WalletType;
120
+ /** Connected address */
121
+ address: string;
122
+ /** Wallet adapter instance */
123
+ adapter: WalletAdapter;
124
+ }
125
+ /**
126
+ * Wallet event types
127
+ */
128
+ export declare enum WalletEvent {
129
+ CONNECT = "connect",
130
+ DISCONNECT = "disconnect",
131
+ ACCOUNT_CHANGED = "accountChanged",
132
+ NETWORK_CHANGED = "networkChanged"
133
+ }
134
+ /**
135
+ * Wallet event payload
136
+ */
137
+ export interface WalletEventPayload {
138
+ walletType: WalletType;
139
+ address?: string;
140
+ network?: string;
141
+ }
142
+ /**
143
+ * Wallet event listener
144
+ */
145
+ export type WalletEventListener = (payload: WalletEventPayload) => void;
146
+ /**
147
+ * Wallet error types
148
+ */
149
+ export declare class WalletError extends Error {
150
+ code: WalletErrorCode;
151
+ walletType?: WalletType | undefined;
152
+ constructor(message: string, code: WalletErrorCode, walletType?: WalletType | undefined);
153
+ }
154
+ export declare enum WalletErrorCode {
155
+ NOT_INSTALLED = "NOT_INSTALLED",
156
+ USER_REJECTED = "USER_REJECTED",
157
+ UNAUTHORIZED = "UNAUTHORIZED",
158
+ NETWORK_ERROR = "NETWORK_ERROR",
159
+ SIGNING_FAILED = "SIGNING_FAILED",
160
+ NOT_CONNECTED = "NOT_CONNECTED",
161
+ ALREADY_CONNECTED = "ALREADY_CONNECTED",
162
+ UNSUPPORTED_METHOD = "UNSUPPORTED_METHOD",
163
+ UNKNOWN_ERROR = "UNKNOWN_ERROR"
164
+ }
165
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/wallet/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Multi-wallet support types for Karn Protocol SDK
3
+ *
4
+ * Supports: Freighter, Albedo, Lobstr, xBull, Rabet
5
+ */
6
+ /**
7
+ * Supported wallet types
8
+ */
9
+ export var WalletType;
10
+ (function (WalletType) {
11
+ WalletType["FREIGHTER"] = "freighter";
12
+ WalletType["ALBEDO"] = "albedo";
13
+ WalletType["LOBSTR"] = "lobstr";
14
+ WalletType["XBULL"] = "xbull";
15
+ WalletType["RABET"] = "rabet";
16
+ })(WalletType || (WalletType = {}));
17
+ /**
18
+ * Wallet event types
19
+ */
20
+ export var WalletEvent;
21
+ (function (WalletEvent) {
22
+ WalletEvent["CONNECT"] = "connect";
23
+ WalletEvent["DISCONNECT"] = "disconnect";
24
+ WalletEvent["ACCOUNT_CHANGED"] = "accountChanged";
25
+ WalletEvent["NETWORK_CHANGED"] = "networkChanged";
26
+ })(WalletEvent || (WalletEvent = {}));
27
+ /**
28
+ * Wallet error types
29
+ */
30
+ export class WalletError extends Error {
31
+ constructor(message, code, walletType) {
32
+ super(message);
33
+ this.code = code;
34
+ this.walletType = walletType;
35
+ this.name = 'WalletError';
36
+ }
37
+ }
38
+ export var WalletErrorCode;
39
+ (function (WalletErrorCode) {
40
+ WalletErrorCode["NOT_INSTALLED"] = "NOT_INSTALLED";
41
+ WalletErrorCode["USER_REJECTED"] = "USER_REJECTED";
42
+ WalletErrorCode["UNAUTHORIZED"] = "UNAUTHORIZED";
43
+ WalletErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
44
+ WalletErrorCode["SIGNING_FAILED"] = "SIGNING_FAILED";
45
+ WalletErrorCode["NOT_CONNECTED"] = "NOT_CONNECTED";
46
+ WalletErrorCode["ALREADY_CONNECTED"] = "ALREADY_CONNECTED";
47
+ WalletErrorCode["UNSUPPORTED_METHOD"] = "UNSUPPORTED_METHOD";
48
+ WalletErrorCode["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
49
+ })(WalletErrorCode || (WalletErrorCode = {}));
50
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/wallet/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,qCAAuB,CAAA;IACvB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,6BAAe,CAAA;IACf,6BAAe,CAAA;AACjB,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;AA4ID;;GAEG;AACH,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,wCAAyB,CAAA;IACzB,iDAAkC,CAAA;IAClC,iDAAkC,CAAA;AACpC,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAgBD;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YACE,OAAe,EACR,IAAqB,EACrB,UAAuB;QAE9B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAiB;QACrB,eAAU,GAAV,UAAU,CAAa;QAG9B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,CAAN,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,kDAA+B,CAAA;IAC/B,kDAA+B,CAAA;IAC/B,gDAA6B,CAAA;IAC7B,kDAA+B,CAAA;IAC/B,oDAAiC,CAAA;IACjC,kDAA+B,CAAA;IAC/B,0DAAuC,CAAA;IACvC,4DAAyC,CAAA;IACzC,kDAA+B,CAAA;AACjC,CAAC,EAVW,eAAe,KAAf,eAAe,QAU1B"}