@sidhujag/sysweb3-keyring 1.0.547 → 1.0.549

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 (212) hide show
  1. package/{dist/cjs → cjs}/providers.js +1 -64
  2. package/cjs/providers.js.map +1 -0
  3. package/{dist/cjs → cjs}/transactions/ethereum.js +1 -16
  4. package/cjs/transactions/ethereum.js.map +1 -0
  5. package/package.json +2 -30
  6. package/{dist/types → types}/providers.d.ts +0 -8
  7. package/{dist/types → types}/transactions/ethereum.d.ts +2 -2
  8. package/{dist/types → types}/types.d.ts +2 -2
  9. package/coverage/clover.xml +0 -2875
  10. package/coverage/coverage-final.json +0 -29468
  11. package/coverage/lcov-report/base.css +0 -354
  12. package/coverage/lcov-report/block-navigation.js +0 -85
  13. package/coverage/lcov-report/favicon.png +0 -0
  14. package/coverage/lcov-report/index.html +0 -320
  15. package/coverage/lcov-report/prettify.css +0 -101
  16. package/coverage/lcov-report/prettify.js +0 -1008
  17. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  18. package/coverage/lcov-report/sorter.js +0 -191
  19. package/coverage/lcov-report/src/index.html +0 -276
  20. package/coverage/lcov-report/src/index.ts.html +0 -114
  21. package/coverage/lcov-report/src/initial-state.ts.html +0 -558
  22. package/coverage/lcov-report/src/keyring-manager.ts.html +0 -6279
  23. package/coverage/lcov-report/src/ledger/bitcoin_client/index.html +0 -178
  24. package/coverage/lcov-report/src/ledger/bitcoin_client/index.ts.html +0 -144
  25. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/appClient.ts.html +0 -1560
  26. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/bip32.ts.html +0 -276
  27. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/buffertools.ts.html +0 -495
  28. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/clientCommands.ts.html +0 -1138
  29. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/index.html +0 -363
  30. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/merkelizedPsbt.ts.html +0 -289
  31. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/merkle.ts.html +0 -486
  32. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/merkleMap.ts.html +0 -240
  33. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/policy.ts.html +0 -342
  34. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/psbtv2.ts.html +0 -2388
  35. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/varint.ts.html +0 -453
  36. package/coverage/lcov-report/src/ledger/consts.ts.html +0 -177
  37. package/coverage/lcov-report/src/ledger/index.html +0 -216
  38. package/coverage/lcov-report/src/ledger/index.ts.html +0 -1371
  39. package/coverage/lcov-report/src/ledger/utils.ts.html +0 -102
  40. package/coverage/lcov-report/src/signers.ts.html +0 -591
  41. package/coverage/lcov-report/src/storage.ts.html +0 -198
  42. package/coverage/lcov-report/src/transactions/ethereum.ts.html +0 -5826
  43. package/coverage/lcov-report/src/transactions/index.html +0 -216
  44. package/coverage/lcov-report/src/transactions/index.ts.html +0 -93
  45. package/coverage/lcov-report/src/transactions/syscoin.ts.html +0 -1521
  46. package/coverage/lcov-report/src/trezor/index.html +0 -176
  47. package/coverage/lcov-report/src/trezor/index.ts.html +0 -2655
  48. package/coverage/lcov-report/src/types.ts.html +0 -1443
  49. package/coverage/lcov-report/src/utils/derivation-paths.ts.html +0 -486
  50. package/coverage/lcov-report/src/utils/index.html +0 -196
  51. package/coverage/lcov-report/src/utils/psbt.ts.html +0 -159
  52. package/coverage/lcov-report/test/helpers/constants.ts.html +0 -627
  53. package/coverage/lcov-report/test/helpers/index.html +0 -176
  54. package/coverage/lcov.info +0 -4832
  55. package/dist/cjs/providers.js.map +0 -1
  56. package/dist/cjs/transactions/ethereum.js.map +0 -1
  57. package/dist/package.json +0 -50
  58. package/examples/basic-usage.js +0 -140
  59. package/jest.config.js +0 -32
  60. package/readme.md +0 -201
  61. package/src/declare.d.ts +0 -7
  62. package/src/errorUtils.ts +0 -83
  63. package/src/hardware-wallet-manager.ts +0 -655
  64. package/src/index.ts +0 -12
  65. package/src/initial-state.ts +0 -108
  66. package/src/keyring-manager.ts +0 -2698
  67. package/src/ledger/bitcoin_client/index.ts +0 -19
  68. package/src/ledger/bitcoin_client/lib/appClient.ts +0 -405
  69. package/src/ledger/bitcoin_client/lib/bip32.ts +0 -61
  70. package/src/ledger/bitcoin_client/lib/buffertools.ts +0 -134
  71. package/src/ledger/bitcoin_client/lib/clientCommands.ts +0 -356
  72. package/src/ledger/bitcoin_client/lib/constants.ts +0 -12
  73. package/src/ledger/bitcoin_client/lib/merkelizedPsbt.ts +0 -65
  74. package/src/ledger/bitcoin_client/lib/merkle.ts +0 -136
  75. package/src/ledger/bitcoin_client/lib/merkleMap.ts +0 -49
  76. package/src/ledger/bitcoin_client/lib/policy.ts +0 -91
  77. package/src/ledger/bitcoin_client/lib/psbtv2.ts +0 -768
  78. package/src/ledger/bitcoin_client/lib/varint.ts +0 -120
  79. package/src/ledger/consts.ts +0 -3
  80. package/src/ledger/index.ts +0 -685
  81. package/src/ledger/types.ts +0 -74
  82. package/src/network-utils.ts +0 -99
  83. package/src/providers.ts +0 -345
  84. package/src/signers.ts +0 -158
  85. package/src/storage.ts +0 -63
  86. package/src/transactions/__tests__/integration.test.ts +0 -303
  87. package/src/transactions/__tests__/syscoin.test.ts +0 -409
  88. package/src/transactions/ethereum.ts +0 -2503
  89. package/src/transactions/index.ts +0 -2
  90. package/src/transactions/syscoin.ts +0 -542
  91. package/src/trezor/index.ts +0 -1050
  92. package/src/types.ts +0 -366
  93. package/src/utils/derivation-paths.ts +0 -133
  94. package/src/utils/psbt.ts +0 -24
  95. package/src/utils.ts +0 -191
  96. package/test/README.md +0 -158
  97. package/test/__mocks__/ledger-mock.js +0 -20
  98. package/test/__mocks__/trezor-mock.js +0 -75
  99. package/test/cleanup-summary.md +0 -167
  100. package/test/helpers/README.md +0 -78
  101. package/test/helpers/constants.ts +0 -79
  102. package/test/helpers/setup.ts +0 -714
  103. package/test/integration/import-validation.spec.ts +0 -588
  104. package/test/unit/hardware/ledger.spec.ts +0 -869
  105. package/test/unit/hardware/trezor.spec.ts +0 -828
  106. package/test/unit/keyring-manager/account-management.spec.ts +0 -970
  107. package/test/unit/keyring-manager/import-watchonly.spec.ts +0 -181
  108. package/test/unit/keyring-manager/import-wif.spec.ts +0 -126
  109. package/test/unit/keyring-manager/initialization.spec.ts +0 -782
  110. package/test/unit/keyring-manager/key-derivation.spec.ts +0 -996
  111. package/test/unit/keyring-manager/security.spec.ts +0 -505
  112. package/test/unit/keyring-manager/state-management.spec.ts +0 -375
  113. package/test/unit/network/network-management.spec.ts +0 -372
  114. package/test/unit/transactions/ethereum-transactions.spec.ts +0 -382
  115. package/test/unit/transactions/syscoin-transactions.spec.ts +0 -615
  116. package/tsconfig.json +0 -14
  117. /package/{dist/README.md → README.md} +0 -0
  118. /package/{dist/cjs → cjs}/errorUtils.js +0 -0
  119. /package/{dist/cjs → cjs}/errorUtils.js.map +0 -0
  120. /package/{dist/cjs → cjs}/hardware-wallet-manager.js +0 -0
  121. /package/{dist/cjs → cjs}/hardware-wallet-manager.js.map +0 -0
  122. /package/{dist/cjs → cjs}/index.js +0 -0
  123. /package/{dist/cjs → cjs}/index.js.map +0 -0
  124. /package/{dist/cjs → cjs}/initial-state.js +0 -0
  125. /package/{dist/cjs → cjs}/initial-state.js.map +0 -0
  126. /package/{dist/cjs → cjs}/keyring-manager.js +0 -0
  127. /package/{dist/cjs → cjs}/keyring-manager.js.map +0 -0
  128. /package/{dist/cjs → cjs}/ledger/bitcoin_client/index.js +0 -0
  129. /package/{dist/cjs → cjs}/ledger/bitcoin_client/index.js.map +0 -0
  130. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/appClient.js +0 -0
  131. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/appClient.js.map +0 -0
  132. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/bip32.js +0 -0
  133. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/bip32.js.map +0 -0
  134. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/buffertools.js +0 -0
  135. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/buffertools.js.map +0 -0
  136. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/clientCommands.js +0 -0
  137. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/clientCommands.js.map +0 -0
  138. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/constants.js +0 -0
  139. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/constants.js.map +0 -0
  140. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkelizedPsbt.js +0 -0
  141. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkelizedPsbt.js.map +0 -0
  142. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkle.js +0 -0
  143. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkle.js.map +0 -0
  144. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkleMap.js +0 -0
  145. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkleMap.js.map +0 -0
  146. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/policy.js +0 -0
  147. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/policy.js.map +0 -0
  148. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/psbtv2.js +0 -0
  149. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/psbtv2.js.map +0 -0
  150. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/varint.js +0 -0
  151. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/varint.js.map +0 -0
  152. /package/{dist/cjs → cjs}/ledger/consts.js +0 -0
  153. /package/{dist/cjs → cjs}/ledger/consts.js.map +0 -0
  154. /package/{dist/cjs → cjs}/ledger/index.js +0 -0
  155. /package/{dist/cjs → cjs}/ledger/index.js.map +0 -0
  156. /package/{dist/cjs → cjs}/ledger/types.js +0 -0
  157. /package/{dist/cjs → cjs}/ledger/types.js.map +0 -0
  158. /package/{dist/cjs → cjs}/network-utils.js +0 -0
  159. /package/{dist/cjs → cjs}/network-utils.js.map +0 -0
  160. /package/{dist/cjs → cjs}/signers.js +0 -0
  161. /package/{dist/cjs → cjs}/signers.js.map +0 -0
  162. /package/{dist/cjs → cjs}/storage.js +0 -0
  163. /package/{dist/cjs → cjs}/storage.js.map +0 -0
  164. /package/{dist/cjs → cjs}/transactions/__tests__/integration.test.js +0 -0
  165. /package/{dist/cjs → cjs}/transactions/__tests__/integration.test.js.map +0 -0
  166. /package/{dist/cjs → cjs}/transactions/__tests__/syscoin.test.js +0 -0
  167. /package/{dist/cjs → cjs}/transactions/__tests__/syscoin.test.js.map +0 -0
  168. /package/{dist/cjs → cjs}/transactions/index.js +0 -0
  169. /package/{dist/cjs → cjs}/transactions/index.js.map +0 -0
  170. /package/{dist/cjs → cjs}/transactions/syscoin.js +0 -0
  171. /package/{dist/cjs → cjs}/transactions/syscoin.js.map +0 -0
  172. /package/{dist/cjs → cjs}/trezor/index.js +0 -0
  173. /package/{dist/cjs → cjs}/trezor/index.js.map +0 -0
  174. /package/{dist/cjs → cjs}/types.js +0 -0
  175. /package/{dist/cjs → cjs}/types.js.map +0 -0
  176. /package/{dist/cjs → cjs}/utils/derivation-paths.js +0 -0
  177. /package/{dist/cjs → cjs}/utils/derivation-paths.js.map +0 -0
  178. /package/{dist/cjs → cjs}/utils/psbt.js +0 -0
  179. /package/{dist/cjs → cjs}/utils/psbt.js.map +0 -0
  180. /package/{dist/cjs → cjs}/utils.js +0 -0
  181. /package/{dist/cjs → cjs}/utils.js.map +0 -0
  182. /package/{dist/types → types}/errorUtils.d.ts +0 -0
  183. /package/{dist/types → types}/hardware-wallet-manager.d.ts +0 -0
  184. /package/{dist/types → types}/index.d.ts +0 -0
  185. /package/{dist/types → types}/initial-state.d.ts +0 -0
  186. /package/{dist/types → types}/keyring-manager.d.ts +0 -0
  187. /package/{dist/types → types}/ledger/bitcoin_client/index.d.ts +0 -0
  188. /package/{dist/types → types}/ledger/bitcoin_client/lib/appClient.d.ts +0 -0
  189. /package/{dist/types → types}/ledger/bitcoin_client/lib/bip32.d.ts +0 -0
  190. /package/{dist/types → types}/ledger/bitcoin_client/lib/buffertools.d.ts +0 -0
  191. /package/{dist/types → types}/ledger/bitcoin_client/lib/clientCommands.d.ts +0 -0
  192. /package/{dist/types → types}/ledger/bitcoin_client/lib/constants.d.ts +0 -0
  193. /package/{dist/types → types}/ledger/bitcoin_client/lib/merkelizedPsbt.d.ts +0 -0
  194. /package/{dist/types → types}/ledger/bitcoin_client/lib/merkle.d.ts +0 -0
  195. /package/{dist/types → types}/ledger/bitcoin_client/lib/merkleMap.d.ts +0 -0
  196. /package/{dist/types → types}/ledger/bitcoin_client/lib/policy.d.ts +0 -0
  197. /package/{dist/types → types}/ledger/bitcoin_client/lib/psbtv2.d.ts +0 -0
  198. /package/{dist/types → types}/ledger/bitcoin_client/lib/varint.d.ts +0 -0
  199. /package/{dist/types → types}/ledger/consts.d.ts +0 -0
  200. /package/{dist/types → types}/ledger/index.d.ts +0 -0
  201. /package/{dist/types → types}/ledger/types.d.ts +0 -0
  202. /package/{dist/types → types}/network-utils.d.ts +0 -0
  203. /package/{dist/types → types}/signers.d.ts +0 -0
  204. /package/{dist/types → types}/storage.d.ts +0 -0
  205. /package/{dist/types → types}/transactions/__tests__/integration.test.d.ts +0 -0
  206. /package/{dist/types → types}/transactions/__tests__/syscoin.test.d.ts +0 -0
  207. /package/{dist/types → types}/transactions/index.d.ts +0 -0
  208. /package/{dist/types → types}/transactions/syscoin.d.ts +0 -0
  209. /package/{dist/types → types}/trezor/index.d.ts +0 -0
  210. /package/{dist/types → types}/utils/derivation-paths.d.ts +0 -0
  211. /package/{dist/types → types}/utils/psbt.d.ts +0 -0
  212. /package/{dist/types → types}/utils.d.ts +0 -0
package/test/README.md DELETED
@@ -1,158 +0,0 @@
1
- # Sysweb3 Keyring Test Suite
2
-
3
- This directory contains the comprehensive test suite for the sysweb3-keyring package.
4
-
5
- ## Test Organization
6
-
7
- ### Directory Structure
8
-
9
- ```
10
- test/
11
- ├── unit/ # Unit tests for individual components
12
- │ ├── keyring-manager/ # Core KeyringManager functionality
13
- │ │ ├── initialization.spec.ts # Wallet creation, unlock/lock
14
- │ │ ├── account-management.spec.ts # Account operations
15
- │ │ ├── key-derivation.spec.ts # HD key derivation
16
- │ │ ├── security.spec.ts # Encryption, passwords
17
- │ │ └── state-management.spec.ts # State persistence
18
- │ ├── network/ # Network management
19
- │ │ ├── network-management.spec.ts # Network switching, custom networks
20
- │ │ └── multi-keyring.spec.ts # Multi-keyring constraints
21
- │ ├── transactions/ # Transaction handling
22
- │ │ ├── ethereum-transactions.spec.ts
23
- │ │ └── syscoin-transactions.spec.ts
24
- │ └── hardware/ # Hardware wallet integration
25
- │ ├── trezor.spec.ts
26
- │ └── ledger.spec.ts
27
- ├── integration/ # Integration tests
28
- │ ├── import-validation.spec.ts # Import flows
29
- │ ├── cross-chain-operations.spec.ts
30
- │ └── end-to-end-flows.spec.ts
31
- └── helpers/ # Test utilities
32
- ├── setup.ts # Test setup and mocks
33
- └── constants.ts # Test constants
34
- ```
35
-
36
- ## Test Coverage Areas
37
-
38
- ### Unit Tests
39
-
40
- #### KeyringManager Core
41
-
42
- - **Initialization**: Seed management, wallet creation, secure initialization
43
- - **Account Management**: HD accounts, imported accounts, account switching
44
- - **Key Derivation**: EVM (BIP44) and UTXO (BIP84) derivation paths
45
- - **Security**: Password validation, encryption/decryption, session management
46
- - **State Management**: Persistence, lock/unlock cycles, state recovery
47
-
48
- #### Network Management
49
-
50
- - **EVM Networks**: Switching between Ethereum, Polygon, etc.
51
- - **Custom Networks**: Adding/removing custom RPC endpoints
52
- - **Multi-Keyring**: UTXO network constraints, chain type validation
53
-
54
- #### Transactions
55
-
56
- - **Ethereum**: Transaction signing, message signing, typed data, EIP-1559
57
- - **Syscoin**: PSBT creation, UTXO management, fee estimation
58
-
59
- #### Hardware Wallets
60
-
61
- - **Trezor**: Account import, transaction signing
62
- - **Ledger**: Account import, blind signing
63
-
64
- ### Integration Tests
65
-
66
- - **Import Validation**: Private key imports, zprv validation
67
- - **Cross-Chain**: Multi-keyring coordination
68
- - **End-to-End**: Complete user flows
69
-
70
- ## Running Tests
71
-
72
- ```bash
73
- # Run all tests
74
- yarn test
75
-
76
- # Run specific test file
77
- yarn test packages/sysweb3-keyring/test/unit/keyring-manager/initialization.spec.ts
78
-
79
- # Run with coverage
80
- yarn test --coverage
81
-
82
- # Run unit tests only
83
- yarn test packages/sysweb3-keyring/test/unit
84
-
85
- # Run integration tests only
86
- yarn test packages/sysweb3-keyring/test/integration
87
- ```
88
-
89
- ## Test Patterns
90
-
91
- ### Setup and Teardown
92
-
93
- All tests use the `setupMocks()` helper to ensure clean state:
94
-
95
- ```typescript
96
- beforeEach(() => {
97
- setupMocks();
98
- });
99
- ```
100
-
101
- ### Creating Test Instances
102
-
103
- ```typescript
104
- // EVM keyring
105
- const keyringManager = await KeyringManager.createInitialized(
106
- PEACE_SEED_PHRASE,
107
- FAKE_PASSWORD,
108
- {
109
- ...initialWalletState,
110
- activeNetwork: initialWalletState.networks.ethereum[1],
111
- },
112
- INetworkType.Ethereum
113
- );
114
-
115
- // UTXO keyring
116
- const keyringManager = await KeyringManager.createInitialized(
117
- PEACE_SEED_PHRASE,
118
- FAKE_PASSWORD,
119
- {
120
- ...initialWalletState,
121
- activeNetwork: initialWalletState.networks.syscoin[57],
122
- },
123
- INetworkType.Syscoin
124
- );
125
- ```
126
-
127
- ### Common Test Constants
128
-
129
- - `PEACE_SEED_PHRASE`: Deterministic test mnemonic
130
- - `FAKE_PASSWORD`: Test password
131
- - `SECOND_FAKE_SEED_PHRASE`: Alternative test mnemonic
132
-
133
- ## Mock Strategy
134
-
135
- The test suite uses selective mocking:
136
-
137
- - **Network calls**: Mocked to avoid external dependencies
138
- - **Cryptographic operations**: Use real implementations for deterministic results
139
- - **Storage**: In-memory mock implementation
140
- - **Hardware wallets**: Mocked for unit tests, real in integration tests
141
-
142
- ## Adding New Tests
143
-
144
- 1. Determine if it's a unit or integration test
145
- 2. Place in appropriate directory
146
- 3. Use existing test patterns for consistency
147
- 4. Ensure proper setup/teardown
148
- 5. Add descriptive test names
149
- 6. Cover both success and error cases
150
-
151
- ## Test Quality Guidelines
152
-
153
- - Each test should be independent
154
- - Use descriptive test names that explain the scenario
155
- - Test edge cases and error conditions
156
- - Avoid testing implementation details
157
- - Focus on behavior and public APIs
158
- - Keep tests simple and readable
@@ -1,20 +0,0 @@
1
- // Mock for Ledger modules
2
- module.exports = {
3
- default: class MockTransport {
4
- constructor() {}
5
- static isSupported() {
6
- return Promise.resolve(false);
7
- }
8
- static list() {
9
- return Promise.resolve([]);
10
- }
11
- static listen() {
12
- return { unsubscribe: () => {} };
13
- }
14
- },
15
- // Mock for hid-framing
16
- createHIDframing: () => ({
17
- frame: () => Buffer.from([]),
18
- unframe: () => ({ data: Buffer.from([]), more: false }),
19
- }),
20
- };
@@ -1,75 +0,0 @@
1
- // Mock for TrezorConnect
2
- // Define a complete mock to prevent "main.send is not a function" errors
3
- const TrezorConnect = {
4
- manifest: jest.fn(),
5
- init: jest.fn(() => Promise.resolve({ success: true })),
6
- getDeviceId: () =>
7
- Promise.resolve({ success: true, payload: { deviceId: 'mock-device-id' } }),
8
- getPublicKey: () =>
9
- Promise.resolve({
10
- success: true,
11
- payload: {
12
- publicKey: '0x1234567890abcdef',
13
- chainCode: '0xabcdef1234567890',
14
- xpub: 'xpub1234567890',
15
- },
16
- }),
17
- ethereumGetAddress: () =>
18
- Promise.resolve({
19
- success: true,
20
- payload: { address: '0x1234567890123456789012345678901234567890' },
21
- }),
22
- getAddress: () =>
23
- Promise.resolve({
24
- success: true,
25
- payload: {
26
- address: 'sys1qmock_trezor_verified_address',
27
- path: "m/44'/57'/0'/0/0",
28
- },
29
- }),
30
- signTransaction: () =>
31
- Promise.resolve({
32
- success: true,
33
- payload: { signedTransaction: '0xsigned' },
34
- }),
35
- ethereumSignTypedData: () =>
36
- Promise.resolve({
37
- success: true,
38
- payload: {
39
- signature: '0xmocked_typed_data_signature',
40
- address: '0x1234567890123456789012345678901234567890',
41
- },
42
- }),
43
- getAccountInfo: () =>
44
- Promise.resolve({
45
- success: true,
46
- payload: {
47
- descriptor:
48
- 'vpub5YBbnk2FsQPCd4LsK7rESWaGVeWtq7nr3SgrdbeaQgctXBwpFQfLbKdwtDAkxLwhKubbpNwQqKPodfKTwVc4uN8jbsknuPTpJuW8aN1S3nC',
49
- balance: '0',
50
- availableBalance: '0',
51
- empty: false,
52
- addresses: {
53
- change: [],
54
- used: [],
55
- unused: [],
56
- },
57
- },
58
- }),
59
- on: jest.fn(),
60
- off: jest.fn(),
61
- removeAllListeners: jest.fn(),
62
- dispose: jest.fn(() => Promise.resolve()),
63
- DEVICE_EVENT: 'DEVICE_EVENT',
64
- DEVICE: {
65
- CONNECT: 'device-connect',
66
- DISCONNECT: 'device-disconnect',
67
- },
68
- UI_EVENT: 'UI_EVENT',
69
- UI: {
70
- REQUEST_BUTTON: 'ui-request_button',
71
- },
72
- };
73
-
74
- module.exports = TrezorConnect;
75
- module.exports.default = TrezorConnect;
@@ -1,167 +0,0 @@
1
- # Sysweb3-Keyring Test Suite Cleanup Summary
2
-
3
- ## Completed Tasks ✅
4
-
5
- ### 1. Removed sessionSeed from KeyringManager
6
-
7
- - **Status**: Complete
8
- - **Changes**:
9
- - Removed `sessionSeed` property from KeyringManager class
10
- - Updated `setDerivedWeb3Accounts()` to use ethers.js HD derivation directly from mnemonic
11
- - Removed `ethereumjs-wallet`, `hdkey` package dependencies
12
- - Removed `mnemonicToSeed` import from bip39
13
- - Updated `getSessionData()` to exclude sessionSeed
14
- - Updated constructor and `recreateSessionFromVault()` to remove sessionSeed handling
15
-
16
- ### 2. Test Suite Reorganization
17
-
18
- - **Status**: Complete
19
- - **Structure**:
20
- ```
21
- test/
22
- ├── helpers/
23
- │ ├── setup.ts # Test setup utilities
24
- │ └── constants.ts # Shared test constants
25
- ├── unit/
26
- │ ├── keyring-manager/
27
- │ │ ├── initialization.spec.ts # Seed, wallet init, lock/unlock
28
- │ │ ├── account-management.spec.ts # HD/imported accounts, switching
29
- │ │ ├── key-derivation.spec.ts # EVM/UTXO derivation
30
- │ │ ├── security.spec.ts # Password, encryption, vault
31
- │ │ └── state-management.spec.ts # State persistence, multi-keyring
32
- │ ├── network/
33
- │ │ └── network-management.spec.ts # Network switching, custom networks
34
- │ ├── transactions/
35
- │ │ ├── ethereum-transactions.spec.ts # EVM signing, typed data
36
- │ │ └── syscoin-transactions.spec.ts # UTXO transactions, PSBT
37
- │ └── hardware/
38
- │ ├── trezor.spec.ts # Trezor integration
39
- │ └── ledger.spec.ts # Ledger integration
40
- ├── integration/
41
- │ └── import-validation.spec.ts # UTXO/EVM imports, zprv validation
42
- └── README.md # Test documentation
43
- ```
44
-
45
- ### 3. Files Deleted
46
-
47
- The following redundant test files were removed:
48
-
49
- - `keyring-manager.spec.ts` - Main tests (split into organized files)
50
- - `keyring-manager-improved.spec.ts` - Duplicate tests
51
- - `account-index-fix.spec.ts` - Covered in account-management.spec.ts
52
- - `ethereum-key-derivation.spec.ts` - Covered in key-derivation.spec.ts
53
- - `network-switching.spec.ts` - Covered in network-management.spec.ts
54
- - `network-sync-improvements.spec.ts` - Merged into network-management.spec.ts
55
- - `network-sync-fix.spec.ts` - Redundant
56
- - `custom-network-sync.spec.ts` - Covered in network-management.spec.ts
57
- - `validate-zprv-fix.spec.ts` - Covered in import-validation.spec.ts
58
- - `validate-zprv-network-specific.spec.ts` - Covered in import-validation.spec.ts
59
- - `keyring-manager-opt-state.spec.ts` - Covered in state-management.spec.ts
60
- - `bug-fixes-validation.spec.ts` - Tests integrated into relevant unit tests
61
- - `sys.spec.ts` - Covered in syscoin-transactions.spec.ts
62
- - `syscoin-simple.spec.ts` - Covered in syscoin-transactions.spec.ts
63
- - `hardware-wallet-signing.spec.ts` - Split into trezor.spec.ts and ledger.spec.ts
64
-
65
- ### 4. New Test Files Created
66
-
67
- - **Unit Tests**:
68
- - `unit/keyring-manager/initialization.spec.ts` - Wallet initialization, lock/unlock, session management
69
- - `unit/keyring-manager/account-management.spec.ts` - HD accounts, imported accounts, account switching
70
- - `unit/keyring-manager/key-derivation.spec.ts` - EVM/UTXO key derivation, deterministic addresses
71
- - `unit/keyring-manager/security.spec.ts` - Password management, encryption, vault security
72
-
73
- ### 1. Created Organized Test Structure
74
-
75
- - ✅ Created `unit/` directory for unit tests
76
- - ✅ Created `integration/` directory for integration tests
77
- - ✅ Created `helpers/` directory for test utilities
78
- - ✅ Moved `setup.ts` and `constants.ts` to `helpers/`
79
-
80
- ### 2. Created New Organized Test Files
81
-
82
- #### Unit Tests
83
-
84
- - ✅ `unit/keyring-manager/initialization.spec.ts` - Wallet initialization, lock/unlock
85
- - ✅ `unit/keyring-manager/account-management.spec.ts` - Account operations
86
- - ✅ `unit/keyring-manager/key-derivation.spec.ts` - HD key derivation
87
- - ✅ `unit/keyring-manager/security.spec.ts` - Password management, encryption, key protection
88
- - ✅ `unit/network/network-management.spec.ts` - Network switching and management
89
- - ✅ `unit/transactions/ethereum-transactions.spec.ts` - Ethereum transaction tests
90
-
91
- #### Integration Tests
92
-
93
- - ✅ `integration/import-validation.spec.ts` - Comprehensive import validation
94
-
95
- ### 3. Documentation
96
-
97
- - ✅ Created comprehensive `README.md` for test organization
98
-
99
- ## Remaining Tasks
100
-
101
- ### Files to be Reorganized/Removed
102
-
103
- The following files should be reviewed and either:
104
-
105
- 1. Integrated into the new organized tests
106
- 2. Removed if redundant
107
-
108
- #### Redundant/Old Test Files:
109
-
110
- - `keyring-manager.spec.ts` - Main tests (split into organized files)
111
- - `keyring-manager-improved.spec.ts` - Duplicate tests
112
- - `keyring-manager-opt-state.spec.ts` - Merge into state-management.spec.ts
113
- - `bug-fixes-validation.spec.ts` - Integrate into relevant unit tests
114
- - `account-index-fix.spec.ts` - Already covered in account-management.spec.ts
115
- - `ethereum-key-derivation.spec.ts` - Covered in key-derivation.spec.ts
116
- - `network-switching.spec.ts` - Covered in network-management.spec.ts
117
- - `network-sync-improvements.spec.ts` - Merge into network-management.spec.ts
118
- - `network-sync-fix.spec.ts` - Redundant
119
- - `custom-network-sync.spec.ts` - Covered in network-management.spec.ts
120
- - `validate-zprv-fix.spec.ts` - Covered in import-validation.spec.ts
121
- - `validate-zprv-network-specific.spec.ts` - Covered in import-validation.spec.ts
122
-
123
- #### Files to Create:
124
-
125
- - `unit/keyring-manager/security.spec.ts` - Password management, encryption
126
- - `unit/keyring-manager/state-management.spec.ts` - State persistence
127
- - `unit/transactions/syscoin-transactions.spec.ts` - UTXO transaction tests
128
- - `unit/hardware/trezor.spec.ts` - Trezor integration
129
- - `unit/hardware/ledger.spec.ts` - Ledger integration
130
- - `integration/cross-chain-operations.spec.ts` - Multi-keyring scenarios
131
- - `integration/end-to-end-flows.spec.ts` - Complete user flows
132
-
133
- ## Recommended Actions
134
-
135
- 1. **Create Missing Test Files**: Complete the unit and integration test suite
136
- 2. **Migrate Unique Tests**: Extract any unique test cases from old files
137
- 3. **Remove Redundant Files**: Delete old test files after migration
138
- 4. **Update Jest Config**: Ensure test paths are updated
139
- 5. **Run Coverage Report**: Verify we maintain or improve coverage
140
-
141
- ## Test Migration Guide
142
-
143
- ### From `keyring-manager.spec.ts`:
144
-
145
- - Initialization tests → `initialization.spec.ts` ✅
146
- - Account tests → `account-management.spec.ts` ✅
147
- - Network tests → `network-management.spec.ts` ✅
148
- - Transaction tests → `ethereum-transactions.spec.ts` ✅
149
- - Security tests → `security.spec.ts` (TO CREATE)
150
-
151
- ### From `syscoin-simple.spec.ts` & `sys.spec.ts`:
152
-
153
- - All tests → `syscoin-transactions.spec.ts` (TO CREATE)
154
-
155
- ### From `hardware-wallet-signing.spec.ts`:
156
-
157
- - Trezor tests → `trezor.spec.ts` (TO CREATE)
158
- - Ledger tests → `ledger.spec.ts` (TO CREATE)
159
-
160
- ## Benefits of New Structure
161
-
162
- 1. **Better Organization**: Tests grouped by functionality
163
- 2. **Easier Maintenance**: Clear separation of concerns
164
- 3. **Improved Discoverability**: Easy to find relevant tests
165
- 4. **Reduced Duplication**: Consolidated similar tests
166
- 5. **Better Coverage**: Clear gaps in testing are visible
167
- 6. **Faster Development**: Developers can run specific test suites
@@ -1,78 +0,0 @@
1
- # Test Helpers
2
-
3
- This directory contains global test utilities for the sysweb3-keyring package.
4
-
5
- ## Global Mock Utilities
6
-
7
- ### `mockVaultState`
8
-
9
- A default mock vault state that can be used in any test file. This is automatically created with:
10
-
11
- - Active account: ID 0, HDAccount type
12
- - Active network: Syscoin mainnet (chainId 57)
13
- - All default networks and accounts from `initialWalletState`
14
-
15
- Usage:
16
-
17
- ```typescript
18
- import { setupMocks } from '../helpers/setup';
19
-
20
- describe('My Test', () => {
21
- beforeEach(() => {
22
- setupMocks();
23
- });
24
-
25
- it('should use global mock state', () => {
26
- const mockVaultStateGetter = jest.fn(() => mockVaultState);
27
- keyringManager.setVaultStateGetter(mockVaultStateGetter);
28
- // mockVaultState is now available globally
29
- });
30
- });
31
- ```
32
-
33
- ### `createMockVaultState(options)`
34
-
35
- A utility function to create custom mock vault states with different configurations.
36
-
37
- Parameters:
38
-
39
- - `activeAccountId` (default: 0) - The active account ID
40
- - `activeAccountType` (default: HDAccount) - The active account type
41
- - `networkType` (default: Syscoin) - The network type (Syscoin or Ethereum)
42
- - `chainId` (optional) - Specific chain ID to use
43
-
44
- Usage:
45
-
46
- ```typescript
47
- // Create EVM mock state
48
- const evmMockState = createMockVaultState({
49
- networkType: INetworkType.Ethereum,
50
- chainId: 1, // Ethereum mainnet
51
- });
52
-
53
- // Create Polygon mock state
54
- const polygonMockState = createMockVaultState({
55
- networkType: INetworkType.Ethereum,
56
- chainId: 137,
57
- });
58
-
59
- // Create Bitcoin testnet mock state
60
- const btcTestnetMockState = createMockVaultState({
61
- networkType: INetworkType.Syscoin,
62
- chainId: 1, // Bitcoin testnet uses slip44=1
63
- });
64
-
65
- // Use in test
66
- const mockVaultStateGetter = jest.fn(() => evmMockState);
67
- keyringManager.setVaultStateGetter(mockVaultStateGetter);
68
- ```
69
-
70
- ## Other Utilities
71
-
72
- ### `setupMocks()`
73
-
74
- Clears all mocks and resets global state. Should be called in `beforeEach()`.
75
-
76
- ### `setupTestVault(password)`
77
-
78
- Creates a test vault with encrypted mnemonic and proper vault-keys for password validation.
@@ -1,79 +0,0 @@
1
- import { INetworkType } from '@sidhujag/sysweb3-network';
2
- import * as dotenv from 'dotenv';
3
-
4
- dotenv.config();
5
- export const FAKE_PASSWORD = 'Asdqwe123!';
6
- export const FAKE_INVALID_PASSWORD = '12345';
7
-
8
- export const SYS_TANENBAUM_UTXO_NETWORK = {
9
- chainId: 5700,
10
- label: 'Syscoin Testnet',
11
- url: 'https://sys-test.tk/',
12
- default: false,
13
- currency: 'tsys',
14
- apiUrl: '',
15
- explorer: '',
16
- slip44: 60,
17
- kind: INetworkType.Syscoin,
18
- };
19
-
20
- export const DATA: { [type: string]: any } = {
21
- send: {
22
- amount: 1,
23
- fee: 0.00001,
24
- token: null,
25
- rbf: true,
26
- },
27
- sign: {
28
- psbt: 'cHNidP8BANmCAAAAAXV1yEYFkSVeffIhpGoiJeEYWdwHtfutBmNrQq9Y3+yXAgAAAAD/////A6AJAQAAAAAAFgAUZMBLT7xge2bLcHuAmhtOdCUnv4kA4fUFAAAAAF9qTFwCg7Wg6XcBAAAAhsNAAQIJAAjBCGNHRnNhVEU9CTt7ImRlc2MiOiJjR0ZzYVNCa1pXMXZJR1JoY0hBZ2RHOXJaVzRnWTNKbFlYUmxJSFJsYzNRZ01RPT0ifQB/APS5PDADAAAAFgAUtji2FZyTh0hQCpxBnA47GNrn9fQAAAAAAAEBH/R8NzYDAAAAFgAUTTxsbg+2G8pcJY7dAQcZx1QtYHEBCGsCRzBEAiB8cJut6NP2IOGiFgAD2/0YM2otMAgvYlY51VyEoYWl0gIgYHXg85w1sJsHXuklbBYFarSVeYAuxoCIeU39HkLiO+IBIQKDuln5k6NYVB+eI+UIS6GMvaICoPDxp892khDysiiybgdhZGRyZXNzLHRzeXMxcWY1N3hjbXMwa2NkdTVocDkzbXdzenBjZWNhMno2Y3IzcjNjamNzBHBhdGgSbS84NCcvMScvMCcvMS8xNjU0AAAAAA==',
29
- assets: '[]',
30
- },
31
- signAndSend: {
32
- psbt: 'cHNidP8BANmCAAAAAXV1yEYFkSVeffIhpGoiJeEYWdwHtfutBmNrQq9Y3+yXAgAAAAD/////A6AJAQAAAAAAFgAUZMBLT7xge2bLcHuAmhtOdCUnv4kA4fUFAAAAAF9qTFwCg7Wg6XcBAAAAhsNAAQIJAAjBCGNHRnNhVEU9CTt7ImRlc2MiOiJjR0ZzYVNCa1pXMXZJR1JoY0hBZ2RHOXJaVzRnWTNKbFlYUmxJSFJsYzNRZ01RPT0ifQB/APS5PDADAAAAFgAUtji2FZyTh0hQCpxBnA47GNrn9fQAAAAAAAEBH/R8NzYDAAAAFgAUTTxsbg+2G8pcJY7dAQcZx1QtYHEBCGsCRzBEAiB8cJut6NP2IOGiFgAD2/0YM2otMAgvYlY51VyEoYWl0gIgYHXg85w1sJsHXuklbBYFarSVeYAuxoCIeU39HkLiO+IBIQKDuln5k6NYVB+eI+UIS6GMvaICoPDxp892khDysiiybgdhZGRyZXNzLHRzeXMxcWY1N3hjbXMwa2NkdTVocDkzbXdzenBjZWNhMno2Y3IzcjNjamNzBHBhdGgSbS84NCcvMScvMCcvMS8xNjU0AAAAAA==',
33
- assets: '[]',
34
- },
35
- };
36
-
37
- export const FAKE_PRIVATE_KEY_ACCOUNT_ADDRESS =
38
- process.env.PRIVATE_KEY_ACCOUNT_ADDRESS ||
39
- '0x742d35Cc6634C0532925a3b844Bc9e7595f8b2c0';
40
- export const FAKE_PRIVATE_KEY =
41
- process.env.PRIVATE_KEY_ACCOUNT ||
42
- '0x1234567890123456789012345678901234567890123456789012345678901234';
43
- export const PEACE_SEED_PHRASE =
44
- process.env.SEED_PEACE_GLOBE ||
45
- 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about';
46
- export const HEALTH_SEED_PHRASE =
47
- process.env.SEED_SWALLOW_HEALTH ||
48
- 'health swallow abandon abandon abandon abandon abandon abandon abandon abandon abandon about';
49
- export const SEED_ACCOUNT_ADDRESS_AT_EVM =
50
- process.env.SEED_ACCOUNT_ADDRESS_AT_EVM ||
51
- '0x9fB29AAc15b9A4B7F17c3385939b007540f4d791';
52
- export const SEED_ACCOUNT_ADDRESS_AT_UTX0 =
53
- process.env.SEED_ACCOUNT_ADDRESS_AT_UTX0 ||
54
- 'tsys1q4v8sagt0znwaxdscrzhvu8t33n7vj8j45czpv4';
55
- export const SECOND_FAKE_SEED_PHRASE =
56
- 'gauge gauge gauge gauge gauge gauge gauge gauge gauge gauge gauge gauge';
57
- export const INVALID_SEED_PHRASE =
58
- 'Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor';
59
- export const FAKE_ADDRESS = '0x4d4DB937177Ceb77aF4541b4EC9Ae8b0EA5d1a64';
60
- export const FAKE_PRIV_KEY =
61
- '0x27cf026f5657ad3403b767f16e0c46eeaa03fe0ff1903ad5a84d448263255a2b';
62
- export const TX: any = {
63
- to: '0xaaf791cc2cb91527c4aa2ac52c8af97150685840',
64
- from: '0x1FEdCaf5b29259a24C79D3Dfec099b4766AD9ca4',
65
- nonce: 0,
66
- value: '0x9a2241af62c0000',
67
- type: 2,
68
- chainId: 57,
69
- // v: '0x1',
70
- // r: '0xe48cd40bae42146f44d4d8caab1edd2f19ec5a136db3f4e3f6678441afa23b3',
71
- // s: '0x739de80ac6b7c4c478b0669faa44282848445e16c110271de4ec0501bfeaabb7',
72
- };
73
-
74
- export const mockVault = {
75
- mnemonic: PEACE_SEED_PHRASE,
76
- password: FAKE_PASSWORD,
77
- encryptedMnemonic: 'encrypted_mnemonic_mock',
78
- encryptedPrivateKeys: {},
79
- };