@shadow-corp/nearconnect 1.0.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 (179) hide show
  1. package/README.md +546 -0
  2. package/build/InjectedWallet.d.ts +22 -0
  3. package/build/InjectedWallet.js +58 -0
  4. package/build/InjectedWallet.js.map +1 -0
  5. package/build/NearConnector.d.ts +151 -0
  6. package/build/NearConnector.js +536 -0
  7. package/build/NearConnector.js.map +1 -0
  8. package/build/ParentFrameWallet.d.ts +22 -0
  9. package/build/ParentFrameWallet.js +66 -0
  10. package/build/ParentFrameWallet.js.map +1 -0
  11. package/build/SandboxedWallet/code.d.ts +7 -0
  12. package/build/SandboxedWallet/code.js +324 -0
  13. package/build/SandboxedWallet/code.js.map +1 -0
  14. package/build/SandboxedWallet/executor.d.ts +23 -0
  15. package/build/SandboxedWallet/executor.js +338 -0
  16. package/build/SandboxedWallet/executor.js.map +1 -0
  17. package/build/SandboxedWallet/iframe.d.ts +18 -0
  18. package/build/SandboxedWallet/iframe.js +78 -0
  19. package/build/SandboxedWallet/iframe.js.map +1 -0
  20. package/build/SandboxedWallet/index.d.ts +24 -0
  21. package/build/SandboxedWallet/index.js +54 -0
  22. package/build/SandboxedWallet/index.js.map +1 -0
  23. package/build/actions/index.d.ts +3 -0
  24. package/build/actions/index.js +105 -0
  25. package/build/actions/index.js.map +1 -0
  26. package/build/actions/types.d.ts +76 -0
  27. package/build/actions/types.js +3 -0
  28. package/build/actions/types.js.map +1 -0
  29. package/build/connection/health.d.ts +213 -0
  30. package/build/connection/health.js +391 -0
  31. package/build/connection/health.js.map +1 -0
  32. package/build/connection/index.d.ts +4 -0
  33. package/build/connection/index.js +48 -0
  34. package/build/connection/index.js.map +1 -0
  35. package/build/connection/reconnect.d.ts +261 -0
  36. package/build/connection/reconnect.js +454 -0
  37. package/build/connection/reconnect.js.map +1 -0
  38. package/build/connection/retry.d.ts +187 -0
  39. package/build/connection/retry.js +427 -0
  40. package/build/connection/retry.js.map +1 -0
  41. package/build/connection/state.d.ts +222 -0
  42. package/build/connection/state.js +431 -0
  43. package/build/connection/state.js.map +1 -0
  44. package/build/errors.d.ts +177 -0
  45. package/build/errors.js +546 -0
  46. package/build/errors.js.map +1 -0
  47. package/build/hardware/errors.d.ts +36 -0
  48. package/build/hardware/errors.js +127 -0
  49. package/build/hardware/errors.js.map +1 -0
  50. package/build/hardware/index.d.ts +7 -0
  51. package/build/hardware/index.js +39 -0
  52. package/build/hardware/index.js.map +1 -0
  53. package/build/hardware/near-app.d.ts +95 -0
  54. package/build/hardware/near-app.js +291 -0
  55. package/build/hardware/near-app.js.map +1 -0
  56. package/build/hardware/transport.d.ts +94 -0
  57. package/build/hardware/transport.js +267 -0
  58. package/build/hardware/transport.js.map +1 -0
  59. package/build/hardware/types.d.ts +98 -0
  60. package/build/hardware/types.js +72 -0
  61. package/build/hardware/types.js.map +1 -0
  62. package/build/helpers/analytics.d.ts +191 -0
  63. package/build/helpers/analytics.js +304 -0
  64. package/build/helpers/analytics.js.map +1 -0
  65. package/build/helpers/base58.d.ts +6 -0
  66. package/build/helpers/base58.js +47 -0
  67. package/build/helpers/base58.js.map +1 -0
  68. package/build/helpers/events.d.ts +42 -0
  69. package/build/helpers/events.js +68 -0
  70. package/build/helpers/events.js.map +1 -0
  71. package/build/helpers/html.d.ts +8 -0
  72. package/build/helpers/html.js +30 -0
  73. package/build/helpers/html.js.map +1 -0
  74. package/build/helpers/indexdb.d.ts +14 -0
  75. package/build/helpers/indexdb.js +166 -0
  76. package/build/helpers/indexdb.js.map +1 -0
  77. package/build/helpers/manifest.d.ts +147 -0
  78. package/build/helpers/manifest.js +329 -0
  79. package/build/helpers/manifest.js.map +1 -0
  80. package/build/helpers/queue.d.ts +11 -0
  81. package/build/helpers/queue.js +48 -0
  82. package/build/helpers/queue.js.map +1 -0
  83. package/build/helpers/session.d.ts +119 -0
  84. package/build/helpers/session.js +289 -0
  85. package/build/helpers/session.js.map +1 -0
  86. package/build/helpers/simulation.d.ts +128 -0
  87. package/build/helpers/simulation.js +441 -0
  88. package/build/helpers/simulation.js.map +1 -0
  89. package/build/helpers/storage.d.ts +58 -0
  90. package/build/helpers/storage.js +190 -0
  91. package/build/helpers/storage.js.map +1 -0
  92. package/build/helpers/trust.d.ts +157 -0
  93. package/build/helpers/trust.js +340 -0
  94. package/build/helpers/trust.js.map +1 -0
  95. package/build/helpers/url.d.ts +1 -0
  96. package/build/helpers/url.js +13 -0
  97. package/build/helpers/url.js.map +1 -0
  98. package/build/helpers/uuid.d.ts +1 -0
  99. package/build/helpers/uuid.js +14 -0
  100. package/build/helpers/uuid.js.map +1 -0
  101. package/build/index.d.ts +21 -0
  102. package/build/index.js +167 -0
  103. package/build/index.js.map +1 -0
  104. package/build/popups/IframeWalletPopup.d.ts +16 -0
  105. package/build/popups/IframeWalletPopup.js +38 -0
  106. package/build/popups/IframeWalletPopup.js.map +1 -0
  107. package/build/popups/NearWalletsPopup.d.ts +25 -0
  108. package/build/popups/NearWalletsPopup.js +153 -0
  109. package/build/popups/NearWalletsPopup.js.map +1 -0
  110. package/build/popups/Popup.d.ts +22 -0
  111. package/build/popups/Popup.js +94 -0
  112. package/build/popups/Popup.js.map +1 -0
  113. package/build/popups/styles.d.ts +1 -0
  114. package/build/popups/styles.js +257 -0
  115. package/build/popups/styles.js.map +1 -0
  116. package/build/security/audit-log.d.ts +123 -0
  117. package/build/security/audit-log.js +268 -0
  118. package/build/security/audit-log.js.map +1 -0
  119. package/build/security/csp.d.ts +68 -0
  120. package/build/security/csp.js +328 -0
  121. package/build/security/csp.js.map +1 -0
  122. package/build/security/index.d.ts +10 -0
  123. package/build/security/index.js +42 -0
  124. package/build/security/index.js.map +1 -0
  125. package/build/security/origin-guard.d.ts +90 -0
  126. package/build/security/origin-guard.js +244 -0
  127. package/build/security/origin-guard.js.map +1 -0
  128. package/build/security/rate-limiter.d.ts +84 -0
  129. package/build/security/rate-limiter.js +212 -0
  130. package/build/security/rate-limiter.js.map +1 -0
  131. package/build/security/secure-storage.d.ts +77 -0
  132. package/build/security/secure-storage.js +242 -0
  133. package/build/security/secure-storage.js.map +1 -0
  134. package/build/security/transaction-guard.d.ts +71 -0
  135. package/build/security/transaction-guard.js +239 -0
  136. package/build/security/transaction-guard.js.map +1 -0
  137. package/build/types.d.ts +508 -0
  138. package/build/types.js +3 -0
  139. package/build/types.js.map +1 -0
  140. package/build/ui/AccountSwitcherModal.d.ts +53 -0
  141. package/build/ui/AccountSwitcherModal.js +239 -0
  142. package/build/ui/AccountSwitcherModal.js.map +1 -0
  143. package/build/ui/Modal.d.ts +84 -0
  144. package/build/ui/Modal.js +278 -0
  145. package/build/ui/Modal.js.map +1 -0
  146. package/build/ui/TransactionModal.d.ts +84 -0
  147. package/build/ui/TransactionModal.js +406 -0
  148. package/build/ui/TransactionModal.js.map +1 -0
  149. package/build/ui/WalletSelectorModal.d.ts +97 -0
  150. package/build/ui/WalletSelectorModal.js +481 -0
  151. package/build/ui/WalletSelectorModal.js.map +1 -0
  152. package/build/ui/icons.d.ts +19 -0
  153. package/build/ui/icons.js +65 -0
  154. package/build/ui/icons.js.map +1 -0
  155. package/build/ui/index.d.ts +10 -0
  156. package/build/ui/index.js +31 -0
  157. package/build/ui/index.js.map +1 -0
  158. package/build/ui/styles.d.ts +5 -0
  159. package/build/ui/styles.js +973 -0
  160. package/build/ui/styles.js.map +1 -0
  161. package/build/ui/theme.d.ts +133 -0
  162. package/build/ui/theme.js +204 -0
  163. package/build/ui/theme.js.map +1 -0
  164. package/build/wallets/external/index.d.ts +4 -0
  165. package/build/wallets/external/index.js +9 -0
  166. package/build/wallets/external/index.js.map +1 -0
  167. package/build/wallets/external/manager.d.ts +152 -0
  168. package/build/wallets/external/manager.js +586 -0
  169. package/build/wallets/external/manager.js.map +1 -0
  170. package/build/wallets/privileged/index.d.ts +5 -0
  171. package/build/wallets/privileged/index.js +12 -0
  172. package/build/wallets/privileged/index.js.map +1 -0
  173. package/build/wallets/privileged/ledger.d.ts +132 -0
  174. package/build/wallets/privileged/ledger.js +563 -0
  175. package/build/wallets/privileged/ledger.js.map +1 -0
  176. package/build/wallets/privileged/manager.d.ts +54 -0
  177. package/build/wallets/privileged/manager.js +174 -0
  178. package/build/wallets/privileged/manager.js.map +1 -0
  179. package/package.json +33 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/ui/styles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Theme configuration for NEAR Connect UI
3
+ */
4
+ export type ThemeMode = "dark" | "light" | "auto";
5
+ /**
6
+ * Color palette for themes
7
+ */
8
+ export interface ThemeColors {
9
+ background: string;
10
+ backgroundSecondary: string;
11
+ backgroundOverlay: string;
12
+ text: string;
13
+ textSecondary: string;
14
+ textMuted: string;
15
+ border: string;
16
+ borderHover: string;
17
+ accent: string;
18
+ accentHover: string;
19
+ accentText: string;
20
+ success: string;
21
+ error: string;
22
+ warning: string;
23
+ buttonBackground: string;
24
+ buttonText: string;
25
+ buttonHover: string;
26
+ }
27
+ /**
28
+ * Typography configuration
29
+ */
30
+ export interface ThemeTypography {
31
+ fontFamily: string;
32
+ fontFamilyMono: string;
33
+ fontSizeXs: string;
34
+ fontSizeSm: string;
35
+ fontSizeMd: string;
36
+ fontSizeLg: string;
37
+ fontSizeXl: string;
38
+ fontWeight: string;
39
+ fontWeightMedium: string;
40
+ fontWeightBold: string;
41
+ lineHeight: string;
42
+ }
43
+ /**
44
+ * Spacing configuration
45
+ */
46
+ export interface ThemeSpacing {
47
+ xs: string;
48
+ sm: string;
49
+ md: string;
50
+ lg: string;
51
+ xl: string;
52
+ xxl: string;
53
+ }
54
+ /**
55
+ * Border radius configuration
56
+ */
57
+ export interface ThemeBorderRadius {
58
+ sm: string;
59
+ md: string;
60
+ lg: string;
61
+ xl: string;
62
+ full: string;
63
+ }
64
+ /**
65
+ * Animation configuration
66
+ */
67
+ export interface ThemeAnimation {
68
+ duration: string;
69
+ durationFast: string;
70
+ durationSlow: string;
71
+ easing: string;
72
+ }
73
+ /**
74
+ * Branding configuration
75
+ */
76
+ export interface ThemeBranding {
77
+ name: string;
78
+ logo?: string;
79
+ helpUrl?: string;
80
+ getWalletUrl?: string;
81
+ }
82
+ /**
83
+ * Complete theme configuration
84
+ */
85
+ export interface Theme {
86
+ mode: ThemeMode;
87
+ colors: ThemeColors;
88
+ typography: ThemeTypography;
89
+ spacing: ThemeSpacing;
90
+ borderRadius: ThemeBorderRadius;
91
+ animation: ThemeAnimation;
92
+ branding: ThemeBranding;
93
+ }
94
+ /**
95
+ * Partial theme for overrides
96
+ */
97
+ export type ThemeOverrides = {
98
+ mode?: ThemeMode;
99
+ colors?: Partial<ThemeColors>;
100
+ typography?: Partial<ThemeTypography>;
101
+ spacing?: Partial<ThemeSpacing>;
102
+ borderRadius?: Partial<ThemeBorderRadius>;
103
+ animation?: Partial<ThemeAnimation>;
104
+ branding?: Partial<ThemeBranding>;
105
+ };
106
+ /**
107
+ * Create dark theme
108
+ */
109
+ export declare function createDarkTheme(overrides?: ThemeOverrides): Theme;
110
+ /**
111
+ * Create light theme
112
+ */
113
+ export declare function createLightTheme(overrides?: ThemeOverrides): Theme;
114
+ /**
115
+ * Merge theme with overrides
116
+ */
117
+ export declare function mergeTheme(base: Theme, overrides?: ThemeOverrides): Theme;
118
+ /**
119
+ * Get theme based on system preference
120
+ */
121
+ export declare function getSystemTheme(darkTheme: Theme, lightTheme: Theme): Theme;
122
+ /**
123
+ * Convert theme to CSS custom properties
124
+ */
125
+ export declare function themeToCssVars(theme: Theme): string;
126
+ /**
127
+ * Default dark theme instance
128
+ */
129
+ export declare const darkTheme: Theme;
130
+ /**
131
+ * Default light theme instance
132
+ */
133
+ export declare const lightTheme: Theme;
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ /**
3
+ * Theme configuration for NEAR Connect UI
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.lightTheme = exports.darkTheme = void 0;
7
+ exports.createDarkTheme = createDarkTheme;
8
+ exports.createLightTheme = createLightTheme;
9
+ exports.mergeTheme = mergeTheme;
10
+ exports.getSystemTheme = getSystemTheme;
11
+ exports.themeToCssVars = themeToCssVars;
12
+ /**
13
+ * Dark theme colors
14
+ */
15
+ const darkColors = {
16
+ background: "#0d0d0d",
17
+ backgroundSecondary: "rgba(255, 255, 255, 0.08)",
18
+ backgroundOverlay: "rgba(0, 0, 0, 0.5)",
19
+ text: "#ffffff",
20
+ textSecondary: "rgba(255, 255, 255, 0.9)",
21
+ textMuted: "rgba(255, 255, 255, 0.5)",
22
+ border: "rgba(255, 255, 255, 0.1)",
23
+ borderHover: "rgba(255, 255, 255, 0.2)",
24
+ accent: "#6366f1",
25
+ accentHover: "#4f46e5",
26
+ accentText: "#ffffff",
27
+ success: "#22c55e",
28
+ error: "#ef4444",
29
+ warning: "#f59e0b",
30
+ buttonBackground: "#ffffff",
31
+ buttonText: "#000000",
32
+ buttonHover: "rgba(255, 255, 255, 0.9)",
33
+ };
34
+ /**
35
+ * Light theme colors
36
+ */
37
+ const lightColors = {
38
+ background: "#ffffff",
39
+ backgroundSecondary: "rgba(0, 0, 0, 0.04)",
40
+ backgroundOverlay: "rgba(0, 0, 0, 0.3)",
41
+ text: "#0d0d0d",
42
+ textSecondary: "rgba(0, 0, 0, 0.8)",
43
+ textMuted: "rgba(0, 0, 0, 0.5)",
44
+ border: "rgba(0, 0, 0, 0.1)",
45
+ borderHover: "rgba(0, 0, 0, 0.2)",
46
+ accent: "#6366f1",
47
+ accentHover: "#4f46e5",
48
+ accentText: "#ffffff",
49
+ success: "#22c55e",
50
+ error: "#ef4444",
51
+ warning: "#f59e0b",
52
+ buttonBackground: "#0d0d0d",
53
+ buttonText: "#ffffff",
54
+ buttonHover: "rgba(0, 0, 0, 0.85)",
55
+ };
56
+ /**
57
+ * Default typography
58
+ */
59
+ const defaultTypography = {
60
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
61
+ fontFamilyMono: 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace',
62
+ fontSizeXs: "12px",
63
+ fontSizeSm: "14px",
64
+ fontSizeMd: "16px",
65
+ fontSizeLg: "18px",
66
+ fontSizeXl: "24px",
67
+ fontWeight: "400",
68
+ fontWeightMedium: "500",
69
+ fontWeightBold: "600",
70
+ lineHeight: "1.5",
71
+ };
72
+ /**
73
+ * Default spacing
74
+ */
75
+ const defaultSpacing = {
76
+ xs: "4px",
77
+ sm: "8px",
78
+ md: "16px",
79
+ lg: "24px",
80
+ xl: "32px",
81
+ xxl: "48px",
82
+ };
83
+ /**
84
+ * Default border radius
85
+ */
86
+ const defaultBorderRadius = {
87
+ sm: "8px",
88
+ md: "12px",
89
+ lg: "16px",
90
+ xl: "24px",
91
+ full: "9999px",
92
+ };
93
+ /**
94
+ * Default animation
95
+ */
96
+ const defaultAnimation = {
97
+ duration: "200ms",
98
+ durationFast: "100ms",
99
+ durationSlow: "300ms",
100
+ easing: "ease-in-out",
101
+ };
102
+ /**
103
+ * Default branding
104
+ */
105
+ const defaultBranding = {
106
+ name: "NEAR Connect",
107
+ helpUrl: "https://near.org/learn",
108
+ getWalletUrl: "https://near.org/wallets",
109
+ };
110
+ /**
111
+ * Create dark theme
112
+ */
113
+ function createDarkTheme(overrides) {
114
+ return mergeTheme({
115
+ mode: "dark",
116
+ colors: darkColors,
117
+ typography: defaultTypography,
118
+ spacing: defaultSpacing,
119
+ borderRadius: defaultBorderRadius,
120
+ animation: defaultAnimation,
121
+ branding: defaultBranding,
122
+ }, overrides);
123
+ }
124
+ /**
125
+ * Create light theme
126
+ */
127
+ function createLightTheme(overrides) {
128
+ return mergeTheme({
129
+ mode: "light",
130
+ colors: lightColors,
131
+ typography: defaultTypography,
132
+ spacing: defaultSpacing,
133
+ borderRadius: defaultBorderRadius,
134
+ animation: defaultAnimation,
135
+ branding: defaultBranding,
136
+ }, overrides);
137
+ }
138
+ /**
139
+ * Merge theme with overrides
140
+ */
141
+ function mergeTheme(base, overrides) {
142
+ if (!overrides)
143
+ return base;
144
+ return {
145
+ mode: overrides.mode ?? base.mode,
146
+ colors: { ...base.colors, ...overrides.colors },
147
+ typography: { ...base.typography, ...overrides.typography },
148
+ spacing: { ...base.spacing, ...overrides.spacing },
149
+ borderRadius: { ...base.borderRadius, ...overrides.borderRadius },
150
+ animation: { ...base.animation, ...overrides.animation },
151
+ branding: { ...base.branding, ...overrides.branding },
152
+ };
153
+ }
154
+ /**
155
+ * Get theme based on system preference
156
+ */
157
+ function getSystemTheme(darkTheme, lightTheme) {
158
+ if (typeof window === "undefined")
159
+ return darkTheme;
160
+ const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
161
+ return prefersDark ? darkTheme : lightTheme;
162
+ }
163
+ /**
164
+ * Convert theme to CSS custom properties
165
+ */
166
+ function themeToCssVars(theme) {
167
+ const vars = [];
168
+ // Colors
169
+ Object.entries(theme.colors).forEach(([key, value]) => {
170
+ vars.push(`--nc-color-${camelToKebab(key)}: ${value};`);
171
+ });
172
+ // Typography
173
+ Object.entries(theme.typography).forEach(([key, value]) => {
174
+ vars.push(`--nc-${camelToKebab(key)}: ${value};`);
175
+ });
176
+ // Spacing
177
+ Object.entries(theme.spacing).forEach(([key, value]) => {
178
+ vars.push(`--nc-spacing-${key}: ${value};`);
179
+ });
180
+ // Border radius
181
+ Object.entries(theme.borderRadius).forEach(([key, value]) => {
182
+ vars.push(`--nc-radius-${key}: ${value};`);
183
+ });
184
+ // Animation
185
+ Object.entries(theme.animation).forEach(([key, value]) => {
186
+ vars.push(`--nc-${camelToKebab(key)}: ${value};`);
187
+ });
188
+ return vars.join("\n ");
189
+ }
190
+ /**
191
+ * Convert camelCase to kebab-case
192
+ */
193
+ function camelToKebab(str) {
194
+ return str.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
195
+ }
196
+ /**
197
+ * Default dark theme instance
198
+ */
199
+ exports.darkTheme = createDarkTheme();
200
+ /**
201
+ * Default light theme instance
202
+ */
203
+ exports.lightTheme = createLightTheme();
204
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAmPH,0CAaC;AAKD,4CAaC;AAKD,gCAYC;AAKD,wCAKC;AAKD,wCA6BC;AAnND;;GAEG;AACH,MAAM,UAAU,GAAgB;IAC9B,UAAU,EAAE,SAAS;IACrB,mBAAmB,EAAE,2BAA2B;IAChD,iBAAiB,EAAE,oBAAoB;IAEvC,IAAI,EAAE,SAAS;IACf,aAAa,EAAE,0BAA0B;IACzC,SAAS,EAAE,0BAA0B;IAErC,MAAM,EAAE,0BAA0B;IAClC,WAAW,EAAE,0BAA0B;IAEvC,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,SAAS;IAErB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAElB,gBAAgB,EAAE,SAAS;IAC3B,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,0BAA0B;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,GAAgB;IAC/B,UAAU,EAAE,SAAS;IACrB,mBAAmB,EAAE,qBAAqB;IAC1C,iBAAiB,EAAE,oBAAoB;IAEvC,IAAI,EAAE,SAAS;IACf,aAAa,EAAE,oBAAoB;IACnC,SAAS,EAAE,oBAAoB;IAE/B,MAAM,EAAE,oBAAoB;IAC5B,WAAW,EAAE,oBAAoB;IAEjC,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,SAAS;IAErB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAElB,gBAAgB,EAAE,SAAS;IAC3B,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,qBAAqB;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAoB;IACzC,UAAU,EACR,+IAA+I;IACjJ,cAAc,EAAE,6EAA6E;IAC7F,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,KAAK;IACvB,cAAc,EAAE,KAAK;IACrB,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAiB;IACnC,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,GAAG,EAAE,MAAM;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,mBAAmB,GAAsB;IAC7C,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,QAAQ;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAAmB;IACvC,QAAQ,EAAE,OAAO;IACjB,YAAY,EAAE,OAAO;IACrB,YAAY,EAAE,OAAO;IACrB,MAAM,EAAE,aAAa;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAkB;IACrC,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,wBAAwB;IACjC,YAAY,EAAE,0BAA0B;CACzC,CAAC;AAEF;;GAEG;AACH,SAAgB,eAAe,CAAC,SAA0B;IACxD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE,cAAc;QACvB,YAAY,EAAE,mBAAmB;QACjC,SAAS,EAAE,gBAAgB;QAC3B,QAAQ,EAAE,eAAe;KAC1B,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,SAA0B;IACzD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE,cAAc;QACvB,YAAY,EAAE,mBAAmB;QACjC,SAAS,EAAE,gBAAgB;QAC3B,QAAQ,EAAE,eAAe;KAC1B,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,IAAW,EAAE,SAA0B;IAChE,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;QACjC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE;QAC/C,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,UAAU,EAAE;QAC3D,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE;QAClD,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC,YAAY,EAAE;QACjE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE;QACxD,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE;KACtD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,SAAgB,EAAE,UAAiB;IAChE,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IAEpD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC;IAC9E,OAAO,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAY;IACzC,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,SAAS;IACT,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpD,IAAI,CAAC,IAAI,CAAC,cAAc,YAAY,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,YAAY,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,UAAU;IACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACrD,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,gBAAgB;IAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC1D,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,YAAY;IACZ,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACvD,IAAI,CAAC,IAAI,CAAC,QAAQ,YAAY,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/D,CAAC;AAED;;GAEG;AACU,QAAA,SAAS,GAAG,eAAe,EAAE,CAAC;AAE3C;;GAEG;AACU,QAAA,UAAU,GAAG,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * External Wallet Tier (Mobile + WalletConnect)
3
+ */
4
+ export { ExternalWalletManager, type ExternalWalletType, type ExternalWalletConfig, type ExternalWalletManagerConfig, type ExternalWalletAccount, type ExternalTransactionResult, type ExternalSignMessageParams, type ExternalSignedMessage, type ExternalWalletManifest, type PendingRequest, } from './manager';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * External Wallet Tier (Mobile + WalletConnect)
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ExternalWalletManager = void 0;
7
+ var manager_1 = require("./manager");
8
+ Object.defineProperty(exports, "ExternalWalletManager", { enumerable: true, get: function () { return manager_1.ExternalWalletManager; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wallets/external/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qCAWmB;AAVjB,gHAAA,qBAAqB,OAAA"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * External Wallet Manager (Mobile + WalletConnect)
3
+ *
4
+ * Handles wallets that communicate via:
5
+ * - Deep links (mobile apps)
6
+ * - WalletConnect protocol
7
+ * - Redirect flows (web wallets on mobile)
8
+ */
9
+ import type { Network, Transaction } from '../../types';
10
+ export type ExternalWalletType = 'deeplink' | 'walletconnect' | 'redirect';
11
+ export interface ExternalWalletConfig {
12
+ id: string;
13
+ name: string;
14
+ type: ExternalWalletType;
15
+ icon: string;
16
+ deepLink?: {
17
+ scheme: string;
18
+ signIn: string;
19
+ signTransaction: string;
20
+ signMessage?: string;
21
+ };
22
+ walletConnect?: {
23
+ projectId: string;
24
+ relayUrl?: string;
25
+ metadata?: {
26
+ name: string;
27
+ description: string;
28
+ url: string;
29
+ icons: string[];
30
+ };
31
+ };
32
+ redirect?: {
33
+ signInUrl: string;
34
+ signTransactionUrl: string;
35
+ callbackUrl?: string;
36
+ };
37
+ platforms: {
38
+ ios?: string;
39
+ android?: string;
40
+ webapp?: string;
41
+ };
42
+ }
43
+ export interface ExternalWalletManagerConfig {
44
+ network: Network;
45
+ wallets: ExternalWalletConfig[];
46
+ appName: string;
47
+ appUrl: string;
48
+ callbackUrl?: string;
49
+ }
50
+ export interface PendingRequest {
51
+ id: string;
52
+ type: 'signIn' | 'signTransaction' | 'signMessage';
53
+ walletId: string;
54
+ timestamp: number;
55
+ payload: unknown;
56
+ resolve: (result: unknown) => void;
57
+ reject: (error: Error) => void;
58
+ }
59
+ export interface ExternalWalletAccount {
60
+ accountId: string;
61
+ publicKey?: string;
62
+ }
63
+ export interface ExternalTransactionResult {
64
+ transaction: {
65
+ hash: string;
66
+ signerId: string;
67
+ receiverId: string;
68
+ };
69
+ status: {
70
+ SuccessValue?: string;
71
+ Failure?: unknown;
72
+ };
73
+ }
74
+ export interface ExternalSignMessageParams {
75
+ message: string;
76
+ recipient: string;
77
+ nonce: Uint8Array;
78
+ callbackUrl?: string;
79
+ }
80
+ export interface ExternalSignedMessage {
81
+ accountId: string;
82
+ publicKey: string;
83
+ signature: string;
84
+ message: string;
85
+ }
86
+ export interface ExternalWalletManifest {
87
+ id: string;
88
+ name: string;
89
+ iconUrl: string;
90
+ type: 'external';
91
+ externalType: ExternalWalletType;
92
+ platforms?: {
93
+ ios?: string;
94
+ android?: string;
95
+ webapp?: string;
96
+ };
97
+ features?: {
98
+ signTransaction?: boolean;
99
+ signAndSendTransaction?: boolean;
100
+ signMessage?: boolean;
101
+ };
102
+ }
103
+ type EventCallback<T> = (data: T) => void;
104
+ type Unsubscribe = () => void;
105
+ export declare class ExternalWalletManager {
106
+ private config;
107
+ private wallets;
108
+ private pendingRequests;
109
+ private connectedWallet;
110
+ private listeners;
111
+ private wcClient;
112
+ private wcSession;
113
+ constructor(config: ExternalWalletManagerConfig);
114
+ getManifests(): ExternalWalletManifest[];
115
+ isExternalWallet(walletId: string): boolean;
116
+ connect(walletId: string): Promise<ExternalWalletAccount[]>;
117
+ disconnect(walletId: string): Promise<void>;
118
+ isConnected(walletId: string): boolean;
119
+ getAccounts(walletId: string): ExternalWalletAccount[];
120
+ private connectViaDeepLink;
121
+ private openDeepLink;
122
+ private connectViaWalletConnect;
123
+ private getWalletConnectClient;
124
+ private disconnectWalletConnect;
125
+ private parseWalletConnectAccounts;
126
+ private connectViaRedirect;
127
+ signAndSendTransaction(walletId: string, tx: Transaction): Promise<ExternalTransactionResult>;
128
+ private signTransactionViaDeepLink;
129
+ private signTransactionViaWalletConnect;
130
+ private signTransactionViaRedirect;
131
+ signMessage(walletId: string, params: ExternalSignMessageParams): Promise<ExternalSignedMessage>;
132
+ private signMessageViaDeepLink;
133
+ private signMessageViaWalletConnect;
134
+ private setupCallbackListener;
135
+ private handleUrlCallback;
136
+ private handlePostMessage;
137
+ private handleCallbackResult;
138
+ private saveSession;
139
+ private clearSession;
140
+ restoreSession(): Promise<ExternalWalletAccount[] | null>;
141
+ private storePendingRedirect;
142
+ private getPendingRedirect;
143
+ private clearPendingRedirect;
144
+ private generateRequestId;
145
+ private buildCallbackUrl;
146
+ private isMobileDevice;
147
+ private getStoreUrl;
148
+ on(event: string, callback: EventCallback<unknown>): Unsubscribe;
149
+ private emit;
150
+ destroy(): Promise<void>;
151
+ }
152
+ export {};