@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,94 @@
1
+ /**
2
+ * Ledger Transport Layer
3
+ *
4
+ * Low-level WebHID communication with Ledger devices
5
+ */
6
+ import { type APDUCommand, type APDUResponse, type LedgerModel } from './types';
7
+ declare global {
8
+ interface Navigator {
9
+ hid?: HID;
10
+ }
11
+ interface HID {
12
+ requestDevice(options: {
13
+ filters: Array<{
14
+ vendorId: number;
15
+ }>;
16
+ }): Promise<HIDDevice[]>;
17
+ }
18
+ interface HIDDevice {
19
+ opened: boolean;
20
+ vendorId: number;
21
+ productId: number;
22
+ open(): Promise<void>;
23
+ close(): Promise<void>;
24
+ sendReport(reportId: number, data: Uint8Array): Promise<void>;
25
+ addEventListener(type: 'inputreport', listener: (event: HIDInputReportEvent) => void): void;
26
+ }
27
+ interface HIDInputReportEvent {
28
+ data: DataView;
29
+ }
30
+ }
31
+ /**
32
+ * Ledger WebHID Transport
33
+ *
34
+ * Handles low-level communication with Ledger devices via WebHID API.
35
+ * Implements the Ledger HID framing protocol.
36
+ */
37
+ export declare class LedgerTransport {
38
+ private device;
39
+ private responseBuffer;
40
+ private pendingResolve;
41
+ private pendingReject;
42
+ constructor();
43
+ /**
44
+ * Check if WebHID is supported in this browser
45
+ */
46
+ static isSupported(): boolean;
47
+ /**
48
+ * Request user to select a Ledger device
49
+ */
50
+ connect(): Promise<void>;
51
+ /**
52
+ * Disconnect from the device
53
+ */
54
+ disconnect(): Promise<void>;
55
+ /**
56
+ * Check if connected to a device
57
+ */
58
+ isConnected(): boolean;
59
+ /**
60
+ * Get device info
61
+ */
62
+ getDeviceInfo(): {
63
+ vendorId: number;
64
+ productId: number;
65
+ } | null;
66
+ /**
67
+ * Send an APDU command and receive response
68
+ */
69
+ send(command: APDUCommand, timeout?: number): Promise<APDUResponse>;
70
+ /**
71
+ * Build APDU buffer from command
72
+ */
73
+ private buildAPDU;
74
+ /**
75
+ * Frame APDU into HID packets
76
+ *
77
+ * Ledger HID protocol:
78
+ * - First packet: [channel (2)] [tag (1)] [seq (2)] [length (2)] [data...]
79
+ * - Subsequent: [channel (2)] [tag (1)] [seq (2)] [data...]
80
+ */
81
+ private frameAPDU;
82
+ /**
83
+ * Handle incoming HID report
84
+ */
85
+ private handleInputReport;
86
+ /**
87
+ * Wait for response with timeout
88
+ */
89
+ private waitForResponse;
90
+ }
91
+ /**
92
+ * Detect Ledger model from product ID
93
+ */
94
+ export declare function detectLedgerModel(productId: number): LedgerModel;
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ /**
3
+ * Ledger Transport Layer
4
+ *
5
+ * Low-level WebHID communication with Ledger devices
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.LedgerTransport = void 0;
9
+ exports.detectLedgerModel = detectLedgerModel;
10
+ const types_1 = require("./types");
11
+ const errors_1 = require("./errors");
12
+ // =============================================================================
13
+ // Constants
14
+ // =============================================================================
15
+ const LEDGER_VENDOR_ID = 0x2c97;
16
+ const HID_PACKET_SIZE = 64;
17
+ const CHANNEL_ID = 0x0101;
18
+ const TAG_APDU = 0x05;
19
+ // =============================================================================
20
+ // Transport Class
21
+ // =============================================================================
22
+ /**
23
+ * Ledger WebHID Transport
24
+ *
25
+ * Handles low-level communication with Ledger devices via WebHID API.
26
+ * Implements the Ledger HID framing protocol.
27
+ */
28
+ class LedgerTransport {
29
+ device = null;
30
+ responseBuffer = new Uint8Array(0);
31
+ pendingResolve = null;
32
+ pendingReject = null;
33
+ constructor() {
34
+ // Check WebHID support on construction
35
+ if (!LedgerTransport.isSupported()) {
36
+ throw (0, errors_1.createHardwareError)(types_1.HardwareErrorCode.WEBHID_NOT_SUPPORTED);
37
+ }
38
+ }
39
+ /**
40
+ * Check if WebHID is supported in this browser
41
+ */
42
+ static isSupported() {
43
+ return typeof navigator !== 'undefined' && 'hid' in navigator;
44
+ }
45
+ /**
46
+ * Request user to select a Ledger device
47
+ */
48
+ async connect() {
49
+ if (this.device?.opened) {
50
+ return;
51
+ }
52
+ try {
53
+ // Request device from user
54
+ const devices = await navigator.hid.requestDevice({
55
+ filters: [{ vendorId: LEDGER_VENDOR_ID }],
56
+ });
57
+ if (devices.length === 0) {
58
+ throw (0, errors_1.createHardwareError)(types_1.HardwareErrorCode.DEVICE_NOT_FOUND);
59
+ }
60
+ this.device = devices[0];
61
+ await this.device.open();
62
+ // Set up input report handler
63
+ this.device.addEventListener('inputreport', this.handleInputReport.bind(this));
64
+ }
65
+ catch (error) {
66
+ if (error instanceof DOMException) {
67
+ if (error.name === 'NotAllowedError') {
68
+ throw (0, errors_1.createHardwareError)(types_1.HardwareErrorCode.USER_REJECTED, 'User cancelled device selection');
69
+ }
70
+ if (error.name === 'NotFoundError') {
71
+ throw (0, errors_1.createHardwareError)(types_1.HardwareErrorCode.DEVICE_NOT_FOUND);
72
+ }
73
+ }
74
+ throw error;
75
+ }
76
+ }
77
+ /**
78
+ * Disconnect from the device
79
+ */
80
+ async disconnect() {
81
+ if (this.device) {
82
+ try {
83
+ await this.device.close();
84
+ }
85
+ catch {
86
+ // Ignore close errors
87
+ }
88
+ this.device = null;
89
+ }
90
+ this.responseBuffer = new Uint8Array(0);
91
+ this.pendingResolve = null;
92
+ this.pendingReject = null;
93
+ }
94
+ /**
95
+ * Check if connected to a device
96
+ */
97
+ isConnected() {
98
+ return this.device?.opened ?? false;
99
+ }
100
+ /**
101
+ * Get device info
102
+ */
103
+ getDeviceInfo() {
104
+ if (!this.device)
105
+ return null;
106
+ return {
107
+ vendorId: this.device.vendorId,
108
+ productId: this.device.productId,
109
+ };
110
+ }
111
+ /**
112
+ * Send an APDU command and receive response
113
+ */
114
+ async send(command, timeout = 30000) {
115
+ if (!this.device?.opened) {
116
+ throw (0, errors_1.createHardwareError)(types_1.HardwareErrorCode.DEVICE_NOT_FOUND);
117
+ }
118
+ // Build APDU
119
+ const apdu = this.buildAPDU(command);
120
+ // Frame into HID packets
121
+ const packets = this.frameAPDU(apdu);
122
+ // Send all packets
123
+ for (const packet of packets) {
124
+ await this.device.sendReport(0, packet);
125
+ }
126
+ // Wait for response with timeout
127
+ const responseData = await this.waitForResponse(timeout);
128
+ // Parse response
129
+ const statusCode = (responseData[responseData.length - 2] << 8) | responseData[responseData.length - 1];
130
+ const data = responseData.slice(0, -2);
131
+ return { data, statusCode };
132
+ }
133
+ /**
134
+ * Build APDU buffer from command
135
+ */
136
+ buildAPDU(command) {
137
+ const dataLength = command.data?.length ?? 0;
138
+ const apdu = new Uint8Array(5 + dataLength);
139
+ apdu[0] = command.cla;
140
+ apdu[1] = command.ins;
141
+ apdu[2] = command.p1;
142
+ apdu[3] = command.p2;
143
+ apdu[4] = dataLength;
144
+ if (command.data) {
145
+ apdu.set(command.data, 5);
146
+ }
147
+ return apdu;
148
+ }
149
+ /**
150
+ * Frame APDU into HID packets
151
+ *
152
+ * Ledger HID protocol:
153
+ * - First packet: [channel (2)] [tag (1)] [seq (2)] [length (2)] [data...]
154
+ * - Subsequent: [channel (2)] [tag (1)] [seq (2)] [data...]
155
+ */
156
+ frameAPDU(apdu) {
157
+ const packets = [];
158
+ let offset = 0;
159
+ let sequence = 0;
160
+ // First packet includes length
161
+ const firstPacket = new Uint8Array(HID_PACKET_SIZE);
162
+ firstPacket[0] = CHANNEL_ID >> 8;
163
+ firstPacket[1] = CHANNEL_ID & 0xff;
164
+ firstPacket[2] = TAG_APDU;
165
+ firstPacket[3] = sequence >> 8;
166
+ firstPacket[4] = sequence & 0xff;
167
+ firstPacket[5] = apdu.length >> 8;
168
+ firstPacket[6] = apdu.length & 0xff;
169
+ const firstDataLength = Math.min(apdu.length, HID_PACKET_SIZE - 7);
170
+ firstPacket.set(apdu.slice(0, firstDataLength), 7);
171
+ packets.push(firstPacket);
172
+ offset = firstDataLength;
173
+ sequence++;
174
+ // Subsequent packets
175
+ while (offset < apdu.length) {
176
+ const packet = new Uint8Array(HID_PACKET_SIZE);
177
+ packet[0] = CHANNEL_ID >> 8;
178
+ packet[1] = CHANNEL_ID & 0xff;
179
+ packet[2] = TAG_APDU;
180
+ packet[3] = sequence >> 8;
181
+ packet[4] = sequence & 0xff;
182
+ const dataLength = Math.min(apdu.length - offset, HID_PACKET_SIZE - 5);
183
+ packet.set(apdu.slice(offset, offset + dataLength), 5);
184
+ packets.push(packet);
185
+ offset += dataLength;
186
+ sequence++;
187
+ }
188
+ return packets;
189
+ }
190
+ /**
191
+ * Handle incoming HID report
192
+ */
193
+ handleInputReport(event) {
194
+ const data = new Uint8Array(event.data.buffer);
195
+ // Check channel and tag
196
+ const channel = (data[0] << 8) | data[1];
197
+ const tag = data[2];
198
+ if (channel !== CHANNEL_ID || tag !== TAG_APDU) {
199
+ return;
200
+ }
201
+ const sequence = (data[3] << 8) | data[4];
202
+ if (sequence === 0) {
203
+ // First packet - get total length
204
+ const totalLength = (data[5] << 8) | data[6];
205
+ this.responseBuffer = new Uint8Array(totalLength);
206
+ const dataStart = 7;
207
+ const dataLength = Math.min(totalLength, HID_PACKET_SIZE - dataStart);
208
+ this.responseBuffer.set(data.slice(dataStart, dataStart + dataLength), 0);
209
+ }
210
+ else {
211
+ // Subsequent packet
212
+ const dataStart = 5;
213
+ const offset = HID_PACKET_SIZE - 7 + (sequence - 1) * (HID_PACKET_SIZE - 5);
214
+ const remaining = this.responseBuffer.length - offset;
215
+ const dataLength = Math.min(remaining, HID_PACKET_SIZE - dataStart);
216
+ this.responseBuffer.set(data.slice(dataStart, dataStart + dataLength), offset);
217
+ }
218
+ // Check if we have complete response
219
+ const expectedPackets = Math.ceil((this.responseBuffer.length + 7) / (HID_PACKET_SIZE - 5));
220
+ const isComplete = sequence >= expectedPackets - 1;
221
+ if (isComplete && this.pendingResolve) {
222
+ this.pendingResolve(this.responseBuffer);
223
+ this.pendingResolve = null;
224
+ this.pendingReject = null;
225
+ }
226
+ }
227
+ /**
228
+ * Wait for response with timeout
229
+ */
230
+ waitForResponse(timeout) {
231
+ return new Promise((resolve, reject) => {
232
+ this.pendingResolve = resolve;
233
+ this.pendingReject = reject;
234
+ this.responseBuffer = new Uint8Array(0);
235
+ const timeoutId = setTimeout(() => {
236
+ this.pendingResolve = null;
237
+ this.pendingReject = null;
238
+ reject((0, errors_1.createHardwareError)(types_1.HardwareErrorCode.TIMEOUT));
239
+ }, timeout);
240
+ // Store original resolve to clear timeout
241
+ const originalResolve = this.pendingResolve;
242
+ this.pendingResolve = (data) => {
243
+ clearTimeout(timeoutId);
244
+ originalResolve(data);
245
+ };
246
+ });
247
+ }
248
+ }
249
+ exports.LedgerTransport = LedgerTransport;
250
+ /**
251
+ * Detect Ledger model from product ID
252
+ */
253
+ function detectLedgerModel(productId) {
254
+ switch (productId) {
255
+ case types_1.LEDGER_PRODUCT_IDS.NANO_S:
256
+ return 'nano-s';
257
+ case types_1.LEDGER_PRODUCT_IDS.NANO_S_PLUS:
258
+ return 'nano-s-plus';
259
+ case types_1.LEDGER_PRODUCT_IDS.NANO_X:
260
+ return 'nano-x';
261
+ case types_1.LEDGER_PRODUCT_IDS.STAX:
262
+ return 'stax';
263
+ default:
264
+ return 'unknown';
265
+ }
266
+ }
267
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/hardware/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Hardware Wallet Types
3
+ *
4
+ * Types, constants, and interfaces for hardware wallet support
5
+ */
6
+ export type HardwareWalletType = 'ledger' | 'trezor';
7
+ /** NEAR app CLA byte */
8
+ export declare const NEAR_CLA = 128;
9
+ /** NEAR app instruction codes */
10
+ export declare const NEAR_INS: {
11
+ readonly GET_VERSION: 0;
12
+ readonly GET_PUBLIC_KEY: 4;
13
+ readonly SIGN_TRANSACTION: 2;
14
+ readonly SIGN_NEP413_MESSAGE: 7;
15
+ };
16
+ /** Ledger status codes */
17
+ export declare const LEDGER_STATUS: {
18
+ readonly OK: 36864;
19
+ readonly WRONG_LENGTH: 26368;
20
+ readonly INVALID_DATA: 27264;
21
+ readonly CONDITIONS_NOT_SATISFIED: 27013;
22
+ readonly COMMAND_NOT_ALLOWED: 27014;
23
+ readonly INS_NOT_SUPPORTED: 27904;
24
+ readonly CLA_NOT_SUPPORTED: 28160;
25
+ readonly APP_NOT_OPEN: 28161;
26
+ readonly UNKNOWN: 28416;
27
+ readonly USER_REJECTED: 27013;
28
+ readonly DEVICE_LOCKED: 27010;
29
+ };
30
+ /** Default BIP44 derivation path for NEAR */
31
+ export declare const DEFAULT_DERIVATION_PATH = "44'/397'/0'/0'/1'";
32
+ /** Ledger device product IDs for model detection */
33
+ export declare const LEDGER_PRODUCT_IDS: {
34
+ readonly NANO_S: 4113;
35
+ readonly NANO_S_PLUS: 20497;
36
+ readonly NANO_X: 16401;
37
+ readonly STAX: 24593;
38
+ };
39
+ export declare enum HardwareErrorCode {
40
+ DEVICE_NOT_FOUND = "DEVICE_NOT_FOUND",
41
+ DEVICE_LOCKED = "DEVICE_LOCKED",
42
+ DEVICE_BUSY = "DEVICE_BUSY",
43
+ CONNECTION_FAILED = "CONNECTION_FAILED",
44
+ DISCONNECTED = "DISCONNECTED",
45
+ APP_NOT_OPEN = "APP_NOT_OPEN",
46
+ WRONG_APP = "WRONG_APP",
47
+ APP_VERSION_UNSUPPORTED = "APP_VERSION_UNSUPPORTED",
48
+ USER_REJECTED = "USER_REJECTED",
49
+ TIMEOUT = "TIMEOUT",
50
+ INVALID_DATA = "INVALID_DATA",
51
+ DERIVATION_PATH_ERROR = "DERIVATION_PATH_ERROR",
52
+ TRANSACTION_TOO_LARGE = "TRANSACTION_TOO_LARGE",
53
+ TRANSPORT_ERROR = "TRANSPORT_ERROR",
54
+ WEBHID_NOT_SUPPORTED = "WEBHID_NOT_SUPPORTED",
55
+ UNKNOWN = "UNKNOWN"
56
+ }
57
+ export interface LedgerConfig {
58
+ enabled?: boolean;
59
+ derivationPath?: string;
60
+ }
61
+ export interface TrezorConfig {
62
+ enabled?: boolean;
63
+ derivationPath?: string;
64
+ }
65
+ export interface HardwareConfig {
66
+ ledger?: LedgerConfig | boolean;
67
+ trezor?: TrezorConfig | boolean;
68
+ }
69
+ export type LedgerModel = 'nano-s' | 'nano-s-plus' | 'nano-x' | 'stax' | 'unknown';
70
+ export interface LedgerDeviceInfo {
71
+ model: LedgerModel;
72
+ nearAppVersion?: string;
73
+ }
74
+ export interface APDUCommand {
75
+ cla: number;
76
+ ins: number;
77
+ p1: number;
78
+ p2: number;
79
+ data?: Uint8Array;
80
+ }
81
+ export interface APDUResponse {
82
+ data: Uint8Array;
83
+ statusCode: number;
84
+ }
85
+ export interface HardwareWaitingEvent {
86
+ walletId: string;
87
+ action: 'connect' | 'get_public_key' | 'sign' | 'sign_message';
88
+ message: string;
89
+ }
90
+ export interface HardwareConfirmEvent {
91
+ walletId: string;
92
+ action: 'connect' | 'get_public_key' | 'sign' | 'sign_message';
93
+ }
94
+ export interface HardwareRejectedEvent {
95
+ walletId: string;
96
+ action: 'connect' | 'get_public_key' | 'sign' | 'sign_message';
97
+ reason: string;
98
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ /**
3
+ * Hardware Wallet Types
4
+ *
5
+ * Types, constants, and interfaces for hardware wallet support
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.HardwareErrorCode = exports.LEDGER_PRODUCT_IDS = exports.DEFAULT_DERIVATION_PATH = exports.LEDGER_STATUS = exports.NEAR_INS = exports.NEAR_CLA = void 0;
9
+ // =============================================================================
10
+ // Ledger Constants
11
+ // =============================================================================
12
+ /** NEAR app CLA byte */
13
+ exports.NEAR_CLA = 0x80;
14
+ /** NEAR app instruction codes */
15
+ exports.NEAR_INS = {
16
+ GET_VERSION: 0x00,
17
+ GET_PUBLIC_KEY: 0x04,
18
+ SIGN_TRANSACTION: 0x02,
19
+ SIGN_NEP413_MESSAGE: 0x07,
20
+ };
21
+ /** Ledger status codes */
22
+ exports.LEDGER_STATUS = {
23
+ OK: 0x9000,
24
+ WRONG_LENGTH: 0x6700,
25
+ INVALID_DATA: 0x6a80,
26
+ CONDITIONS_NOT_SATISFIED: 0x6985,
27
+ COMMAND_NOT_ALLOWED: 0x6986,
28
+ INS_NOT_SUPPORTED: 0x6d00,
29
+ CLA_NOT_SUPPORTED: 0x6e00,
30
+ APP_NOT_OPEN: 0x6e01,
31
+ UNKNOWN: 0x6f00,
32
+ USER_REJECTED: 0x6985,
33
+ DEVICE_LOCKED: 0x6982,
34
+ };
35
+ /** Default BIP44 derivation path for NEAR */
36
+ exports.DEFAULT_DERIVATION_PATH = "44'/397'/0'/0'/1'";
37
+ /** Ledger device product IDs for model detection */
38
+ exports.LEDGER_PRODUCT_IDS = {
39
+ NANO_S: 0x1011,
40
+ NANO_S_PLUS: 0x5011,
41
+ NANO_X: 0x4011,
42
+ STAX: 0x6011,
43
+ };
44
+ // =============================================================================
45
+ // Hardware Error Codes
46
+ // =============================================================================
47
+ var HardwareErrorCode;
48
+ (function (HardwareErrorCode) {
49
+ // Device errors
50
+ HardwareErrorCode["DEVICE_NOT_FOUND"] = "DEVICE_NOT_FOUND";
51
+ HardwareErrorCode["DEVICE_LOCKED"] = "DEVICE_LOCKED";
52
+ HardwareErrorCode["DEVICE_BUSY"] = "DEVICE_BUSY";
53
+ HardwareErrorCode["CONNECTION_FAILED"] = "CONNECTION_FAILED";
54
+ HardwareErrorCode["DISCONNECTED"] = "DISCONNECTED";
55
+ // App errors
56
+ HardwareErrorCode["APP_NOT_OPEN"] = "APP_NOT_OPEN";
57
+ HardwareErrorCode["WRONG_APP"] = "WRONG_APP";
58
+ HardwareErrorCode["APP_VERSION_UNSUPPORTED"] = "APP_VERSION_UNSUPPORTED";
59
+ // User errors
60
+ HardwareErrorCode["USER_REJECTED"] = "USER_REJECTED";
61
+ HardwareErrorCode["TIMEOUT"] = "TIMEOUT";
62
+ // Data errors
63
+ HardwareErrorCode["INVALID_DATA"] = "INVALID_DATA";
64
+ HardwareErrorCode["DERIVATION_PATH_ERROR"] = "DERIVATION_PATH_ERROR";
65
+ HardwareErrorCode["TRANSACTION_TOO_LARGE"] = "TRANSACTION_TOO_LARGE";
66
+ // Transport errors
67
+ HardwareErrorCode["TRANSPORT_ERROR"] = "TRANSPORT_ERROR";
68
+ HardwareErrorCode["WEBHID_NOT_SUPPORTED"] = "WEBHID_NOT_SUPPORTED";
69
+ // Unknown
70
+ HardwareErrorCode["UNKNOWN"] = "UNKNOWN";
71
+ })(HardwareErrorCode || (exports.HardwareErrorCode = HardwareErrorCode = {}));
72
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hardware/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAQH,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,wBAAwB;AACX,QAAA,QAAQ,GAAG,IAAI,CAAC;AAE7B,iCAAiC;AACpB,QAAA,QAAQ,GAAG;IACtB,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;IACtB,mBAAmB,EAAE,IAAI;CACjB,CAAC;AAEX,0BAA0B;AACb,QAAA,aAAa,GAAG;IAC3B,EAAE,EAAE,MAAM;IACV,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,MAAM;IACpB,wBAAwB,EAAE,MAAM;IAChC,mBAAmB,EAAE,MAAM;IAC3B,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,MAAM;IACzB,YAAY,EAAE,MAAM;IACpB,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,MAAM;CACb,CAAC;AAEX,6CAA6C;AAChC,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAE3D,oDAAoD;AACvC,QAAA,kBAAkB,GAAG;IAChC,MAAM,EAAE,MAAM;IACd,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,MAAM;CACJ,CAAC;AAEX,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,IAAY,iBA4BX;AA5BD,WAAY,iBAAiB;IAC3B,gBAAgB;IAChB,0DAAqC,CAAA;IACrC,oDAA+B,CAAA;IAC/B,gDAA2B,CAAA;IAC3B,4DAAuC,CAAA;IACvC,kDAA6B,CAAA;IAE7B,aAAa;IACb,kDAA6B,CAAA;IAC7B,4CAAuB,CAAA;IACvB,wEAAmD,CAAA;IAEnD,cAAc;IACd,oDAA+B,CAAA;IAC/B,wCAAmB,CAAA;IAEnB,cAAc;IACd,kDAA6B,CAAA;IAC7B,oEAA+C,CAAA;IAC/C,oEAA+C,CAAA;IAE/C,mBAAmB;IACnB,wDAAmC,CAAA;IACnC,kEAA6C,CAAA;IAE7C,UAAU;IACV,wCAAmB,CAAA;AACrB,CAAC,EA5BW,iBAAiB,iCAAjB,iBAAiB,QA4B5B"}