@sidhujag/sysweb3-keyring 1.0.627 → 2.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 (140) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +66 -0
  3. package/cjs/hardware-wallet-manager.js +302 -128
  4. package/cjs/hardware-wallet-manager.js.map +1 -1
  5. package/cjs/keyring-core.js +2605 -0
  6. package/cjs/keyring-core.js.map +1 -0
  7. package/cjs/keyring-manager.js +31 -2439
  8. package/cjs/keyring-manager.js.map +1 -1
  9. package/cjs/ledger/bitcoin_client/lib/appClient.js.map +1 -1
  10. package/cjs/ledger/host-types.js +10 -0
  11. package/cjs/ledger/host-types.js.map +1 -0
  12. package/cjs/ledger/index.js +243 -447
  13. package/cjs/ledger/index.js.map +1 -1
  14. package/cjs/ledger/prepare-psbt.js +177 -0
  15. package/cjs/ledger/prepare-psbt.js.map +1 -0
  16. package/cjs/software-hd-account.js +23 -0
  17. package/cjs/software-hd-account.js.map +1 -0
  18. package/cjs/software.js +74 -0
  19. package/cjs/software.js.map +1 -0
  20. package/cjs/storage-core.js +227 -0
  21. package/cjs/storage-core.js.map +1 -0
  22. package/cjs/storage.js +15 -210
  23. package/cjs/storage.js.map +1 -1
  24. package/cjs/transactions/ethereum.js +176 -39
  25. package/cjs/transactions/ethereum.js.map +1 -1
  26. package/cjs/transactions/evm-local-signer.js +11 -1
  27. package/cjs/transactions/evm-local-signer.js.map +1 -1
  28. package/cjs/transactions/hardware-psbt.js +159 -0
  29. package/cjs/transactions/hardware-psbt.js.map +1 -0
  30. package/cjs/transactions/prepared-evm.js +196 -0
  31. package/cjs/transactions/prepared-evm.js.map +1 -0
  32. package/cjs/transactions/syscoin-core.js +651 -0
  33. package/cjs/transactions/syscoin-core.js.map +1 -0
  34. package/cjs/transactions/syscoin.js +8 -768
  35. package/cjs/transactions/syscoin.js.map +1 -1
  36. package/cjs/trezor/connect.js +243 -0
  37. package/cjs/trezor/connect.js.map +1 -0
  38. package/cjs/trezor/index.js +96 -58
  39. package/cjs/trezor/index.js.map +1 -1
  40. package/cjs/trezor/witness.js +25 -0
  41. package/cjs/trezor/witness.js.map +1 -0
  42. package/cjs/types.js.map +1 -1
  43. package/cjs/utils/psbt-account-scope.js +5 -3
  44. package/cjs/utils/psbt-account-scope.js.map +1 -1
  45. package/esm/errorUtils.js +72 -0
  46. package/esm/errorUtils.js.map +1 -0
  47. package/esm/ethers-v6.js +207 -0
  48. package/esm/ethers-v6.js.map +1 -0
  49. package/esm/hardware-wallet-manager.js +643 -0
  50. package/esm/hardware-wallet-manager.js.map +1 -0
  51. package/esm/ledger/bitcoin_client/lib/appClient.js +279 -0
  52. package/esm/ledger/bitcoin_client/lib/appClient.js.map +1 -0
  53. package/esm/ledger/bitcoin_client/lib/bip32.js +49 -0
  54. package/esm/ledger/bitcoin_client/lib/bip32.js.map +1 -0
  55. package/esm/ledger/bitcoin_client/lib/buffertools.js +119 -0
  56. package/esm/ledger/bitcoin_client/lib/buffertools.js.map +1 -0
  57. package/esm/ledger/bitcoin_client/lib/clientCommands.js +269 -0
  58. package/esm/ledger/bitcoin_client/lib/clientCommands.js.map +1 -0
  59. package/esm/ledger/bitcoin_client/lib/merkelizedPsbt.js +50 -0
  60. package/esm/ledger/bitcoin_client/lib/merkelizedPsbt.js.map +1 -0
  61. package/esm/ledger/bitcoin_client/lib/merkle.js +111 -0
  62. package/esm/ledger/bitcoin_client/lib/merkle.js.map +1 -0
  63. package/esm/ledger/bitcoin_client/lib/merkleMap.js +42 -0
  64. package/esm/ledger/bitcoin_client/lib/merkleMap.js.map +1 -0
  65. package/esm/ledger/bitcoin_client/lib/policy.js +68 -0
  66. package/esm/ledger/bitcoin_client/lib/policy.js.map +1 -0
  67. package/esm/ledger/bitcoin_client/lib/psbtv2.js +645 -0
  68. package/esm/ledger/bitcoin_client/lib/psbtv2.js.map +1 -0
  69. package/esm/ledger/bitcoin_client/lib/varint.js +108 -0
  70. package/esm/ledger/bitcoin_client/lib/varint.js.map +1 -0
  71. package/esm/ledger/consts.js +4 -0
  72. package/esm/ledger/consts.js.map +1 -0
  73. package/esm/ledger/dmk-evm.js +258 -0
  74. package/esm/ledger/dmk-evm.js.map +1 -0
  75. package/esm/ledger/dmk-session.js +264 -0
  76. package/esm/ledger/dmk-session.js.map +1 -0
  77. package/esm/ledger/dmk-utxo.js +279 -0
  78. package/esm/ledger/dmk-utxo.js.map +1 -0
  79. package/esm/ledger/host-types.js +5 -0
  80. package/esm/ledger/host-types.js.map +1 -0
  81. package/esm/ledger/index.js +268 -0
  82. package/esm/ledger/index.js.map +1 -0
  83. package/esm/ledger/prepare-psbt.js +141 -0
  84. package/esm/ledger/prepare-psbt.js.map +1 -0
  85. package/esm/ledger/types.js +2 -0
  86. package/esm/ledger/types.js.map +1 -0
  87. package/esm/ledger-host.js +36 -0
  88. package/esm/ledger-host.js.map +1 -0
  89. package/esm/private-records.js +153 -0
  90. package/esm/private-records.js.map +1 -0
  91. package/esm/providers.js +588 -0
  92. package/esm/providers.js.map +1 -0
  93. package/esm/signers.js +28 -0
  94. package/esm/signers.js.map +1 -0
  95. package/esm/trezor/connect.js +206 -0
  96. package/esm/trezor/connect.js.map +1 -0
  97. package/esm/trezor/index.js +876 -0
  98. package/esm/trezor/index.js.map +1 -0
  99. package/esm/trezor/witness.js +21 -0
  100. package/esm/trezor/witness.js.map +1 -0
  101. package/esm/types.js +17 -0
  102. package/esm/types.js.map +1 -0
  103. package/esm/utils/derivation-paths.js +109 -0
  104. package/esm/utils/derivation-paths.js.map +1 -0
  105. package/esm/utils/psbt-account-scope.js +310 -0
  106. package/esm/utils/psbt-account-scope.js.map +1 -0
  107. package/package.json +55 -8
  108. package/types/hardware-wallet-manager.d.ts +12 -19
  109. package/types/keyring-core.d.ts +263 -0
  110. package/types/keyring-manager.d.ts +7 -224
  111. package/types/ledger/bitcoin_client/lib/appClient.d.ts +6 -3
  112. package/types/ledger/dmk-evm.d.ts +8 -0
  113. package/types/ledger/dmk-session.d.ts +60 -0
  114. package/types/ledger/dmk-utxo.d.ts +26 -0
  115. package/types/ledger/host-types.d.ts +131 -0
  116. package/types/ledger/index.d.ts +21 -58
  117. package/types/ledger/prepare-psbt.d.ts +3 -0
  118. package/types/ledger/types.d.ts +3 -0
  119. package/types/ledger-host.d.ts +7 -0
  120. package/types/software-hd-account.d.ts +16 -0
  121. package/types/software.d.ts +39 -0
  122. package/types/storage-core.d.ts +22 -0
  123. package/types/storage.d.ts +1 -4
  124. package/types/transactions/ethereum.d.ts +17 -7
  125. package/types/transactions/evm-local-signer.d.ts +3 -1
  126. package/types/transactions/hardware-psbt.d.ts +7 -0
  127. package/types/transactions/prepared-evm.d.ts +53 -0
  128. package/types/transactions/syscoin-core.d.ts +92 -0
  129. package/types/transactions/syscoin.d.ts +8 -67
  130. package/types/trezor/connect.d.ts +42 -0
  131. package/types/trezor/index.d.ts +22 -4
  132. package/types/trezor/witness.d.ts +3 -0
  133. package/types/types.d.ts +10 -0
  134. package/types/utils/psbt-account-scope.d.ts +1 -0
  135. package/cjs/transactions/__tests__/integration.test.js +0 -237
  136. package/cjs/transactions/__tests__/integration.test.js.map +0 -1
  137. package/cjs/transactions/__tests__/syscoin.test.js +0 -361
  138. package/cjs/transactions/__tests__/syscoin.test.js.map +0 -1
  139. package/types/transactions/__tests__/integration.test.d.ts +0 -1
  140. package/types/transactions/__tests__/syscoin.test.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ledger/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ledger/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.prepareLedgerPsbt = prepareLedgerPsbt;
37
+ const buffer_1 = require("buffer");
38
+ const syscoinjs = __importStar(require("syscoinjs-lib"));
39
+ const derivation_paths_1 = require("../utils/derivation-paths");
40
+ const psbt_account_scope_1 = require("../utils/psbt-account-scope");
41
+ const Transaction = syscoinjs.utils.bitcoinjs.Transaction;
42
+ /** Enrich public PSBT metadata only. Callers must also enforce account scope. */
43
+ function prepareLedgerPsbt(psbt, accountXpub, accountId, currency, slip44, fingerprint) {
44
+ if (!/^[0-9a-fA-F]{8}$/.test(fingerprint))
45
+ throw new Error('Invalid Ledger master fingerprint');
46
+ const accountNode = (0, psbt_account_scope_1.parsePsbtAccountXpub)(accountXpub);
47
+ // Enhance each input with bip32Derivation
48
+ const missingInputDerivations = [];
49
+ for (let i = 0; i < psbt.inputCount; i++) {
50
+ const dataInput = psbt.data.inputs[i];
51
+ // External inputs are already authorized by their final scripts. Do
52
+ // not invent wallet derivations or ask the device to sign them again.
53
+ if (dataInput.finalScriptSig || dataInput.finalScriptWitness)
54
+ continue;
55
+ // Skip if already has bip32Derivation
56
+ if (dataInput.bip32Derivation && dataInput.bip32Derivation.length > 0) {
57
+ // Scope validation has already limited these hints to the approved account.
58
+ for (const derivation of dataInput.bip32Derivation)
59
+ derivation.masterFingerprint = buffer_1.Buffer.from(fingerprint, 'hex');
60
+ continue;
61
+ }
62
+ // Ensure witnessUtxo is present if nonWitnessUtxo exists
63
+ if (!dataInput.witnessUtxo && dataInput.nonWitnessUtxo) {
64
+ const txBuffer = dataInput.nonWitnessUtxo;
65
+ const tx = Transaction.fromBuffer(txBuffer);
66
+ const vout = psbt.txInputs[i].index;
67
+ if (tx.outs[vout]) {
68
+ dataInput.witnessUtxo = {
69
+ script: tx.outs[vout].script,
70
+ value: tx.outs[vout].value,
71
+ };
72
+ }
73
+ }
74
+ // Extract path from unknownKeyVals by searching for the key, not using hardcoded index
75
+ let pathFromInput = null;
76
+ if (dataInput.unknownKeyVals && dataInput.unknownKeyVals.length > 0) {
77
+ for (const kv of dataInput.unknownKeyVals) {
78
+ const keyStr = buffer_1.Buffer.from(kv.key).toString();
79
+ if (keyStr === 'path') {
80
+ pathFromInput = buffer_1.Buffer.from(kv.value).toString();
81
+ break;
82
+ }
83
+ }
84
+ }
85
+ let bip32Derivation = null;
86
+ if (pathFromInput) {
87
+ const fullPath = pathFromInput;
88
+ const accountPath = (0, derivation_paths_1.getAccountDerivationPath)(currency, slip44, accountId);
89
+ const relativePath = fullPath.replace(accountPath, '').replace(/^\//, '');
90
+ const derivationTokens = relativePath.split('/').filter((t) => t);
91
+ const derivedAccount = derivationTokens.reduce((acc, token) => {
92
+ const index = parseInt(token);
93
+ if (isNaN(index)) {
94
+ return acc;
95
+ }
96
+ return acc.derive(index);
97
+ }, accountNode);
98
+ const rawPubkey = derivedAccount.publicKey;
99
+ const pubkeyBuf = buffer_1.Buffer.isBuffer(rawPubkey)
100
+ ? rawPubkey
101
+ : buffer_1.Buffer.from(rawPubkey);
102
+ if (pubkeyBuf && pubkeyBuf.length === 33) {
103
+ // Add the bip32Derivation that Ledger needs
104
+ bip32Derivation = {
105
+ masterFingerprint: buffer_1.Buffer.from(fingerprint, 'hex'),
106
+ path: fullPath,
107
+ pubkey: pubkeyBuf,
108
+ };
109
+ psbt.updateInput(i, {
110
+ bip32Derivation: [bip32Derivation],
111
+ });
112
+ }
113
+ }
114
+ // Check the updated PSBT state (avoid stale local references)
115
+ const updatedInput = psbt.data.inputs[i];
116
+ if (!updatedInput.bip32Derivation ||
117
+ updatedInput.bip32Derivation.length === 0) {
118
+ missingInputDerivations.push(i);
119
+ }
120
+ }
121
+ // Enhance each output with bip32Derivation when it's a change/output owned by the wallet
122
+ for (let i = 0; i < psbt.data.outputs.length; i++) {
123
+ const dataOutput = psbt.data.outputs[i];
124
+ // Skip if derivation already present
125
+ if (dataOutput.bip32Derivation && dataOutput.bip32Derivation.length > 0) {
126
+ continue;
127
+ }
128
+ // Extract path from unknownKeyVals by searching for the key 'path'
129
+ let pathFromOutput = null;
130
+ if (dataOutput.unknownKeyVals && dataOutput.unknownKeyVals.length > 0) {
131
+ for (const kv of dataOutput.unknownKeyVals) {
132
+ const keyStr = buffer_1.Buffer.from(kv.key).toString();
133
+ if (keyStr === 'path') {
134
+ pathFromOutput = buffer_1.Buffer.from(kv.value).toString();
135
+ break;
136
+ }
137
+ }
138
+ }
139
+ if (pathFromOutput) {
140
+ let bip32Derivation = null;
141
+ const fullPath = pathFromOutput;
142
+ const accountPath = (0, derivation_paths_1.getAccountDerivationPath)(currency, slip44, accountId);
143
+ const relativePath = fullPath.replace(accountPath, '').replace(/^\//, '');
144
+ const derivationTokens = relativePath.split('/').filter((t) => t);
145
+ const derivedAccount = derivationTokens.reduce((acc, token) => {
146
+ const index = parseInt(token);
147
+ if (isNaN(index)) {
148
+ return acc;
149
+ }
150
+ return acc.derive(index);
151
+ }, accountNode);
152
+ const rawOutPubkey = derivedAccount.publicKey;
153
+ const outPubkeyBuf = buffer_1.Buffer.isBuffer(rawOutPubkey)
154
+ ? rawOutPubkey
155
+ : buffer_1.Buffer.from(rawOutPubkey);
156
+ if (outPubkeyBuf && outPubkeyBuf.length === 33) {
157
+ bip32Derivation = {
158
+ masterFingerprint: buffer_1.Buffer.from(fingerprint, 'hex'),
159
+ path: fullPath,
160
+ pubkey: outPubkeyBuf,
161
+ };
162
+ psbt.updateOutput(i, {
163
+ bip32Derivation: [bip32Derivation],
164
+ });
165
+ }
166
+ // Outputs without valid derivation are allowed (external recipients)
167
+ }
168
+ }
169
+ // If any wallet-owned inputs/outputs are missing bip32Derivation, fail early with a clear error
170
+ if (missingInputDerivations.length > 0) {
171
+ const parts = [];
172
+ parts.push(`inputs [${missingInputDerivations.join(', ')}]`);
173
+ throw new Error(`convertToLedgerFormat: Missing bip32Derivation for ${parts.join(' and ')}. Ensure PSBT includes a 'path' unknownKeyVal or BIP32_DERIVATION for wallet-owned entries.`);
174
+ }
175
+ return psbt;
176
+ }
177
+ //# sourceMappingURL=prepare-psbt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-psbt.js","sourceRoot":"","sources":["../../../src/ledger/prepare-psbt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,8CA0KC;AApLD,mCAAgC;AAEhC,yDAA2C;AAE3C,gEAAqE;AACrE,oEAAmE;AAEnE,MAAM,WAAW,GAAI,SAAS,CAAC,KAAa,CAAC,SAAS,CAAC,WAAW,CAAC;AAEnE,iFAAiF;AACjF,SAAgB,iBAAiB,CAC/B,IAAU,EACV,WAAmB,EACnB,SAAiB,EACjB,QAAgB,EAChB,MAAc,EACd,WAAmB;IAEnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,IAAA,yCAAoB,EAAC,WAAW,CAAC,CAAC;IAEtD,0CAA0C;IAC1C,MAAM,uBAAuB,GAAa,EAAE,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEtC,oEAAoE;QACpE,sEAAsE;QACtE,IAAI,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,kBAAkB;YAAE,SAAS;QAEvE,sCAAsC;QACtC,IAAI,SAAS,CAAC,eAAe,IAAI,SAAS,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,4EAA4E;YAC5E,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,eAAe;gBAChD,UAAU,CAAC,iBAAiB,GAAG,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACjE,SAAS;QACX,CAAC;QAED,yDAAyD;QACzD,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC;YAC1C,MAAM,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAEpC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,SAAS,CAAC,WAAW,GAAG;oBACtB,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;oBAC5B,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK;iBAC3B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,uFAAuF;QACvF,IAAI,aAAa,GAAkB,IAAI,CAAC;QACxC,IAAI,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpE,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAG,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC9C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,aAAa,GAAG,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjD,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,eAAe,GAAQ,IAAI,CAAC;QAChC,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,aAAa,CAAC;YAC/B,MAAM,WAAW,GAAG,IAAA,2CAAwB,EAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAC1E,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1E,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAElE,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAC5C,CAAC,GAAQ,EAAE,KAAa,EAAE,EAAE;gBAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjB,OAAO,GAAG,CAAC;gBACb,CAAC;gBACD,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC,EACD,WAAW,CACZ,CAAC;YAEF,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC;YAC3C,MAAM,SAAS,GAAG,eAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC1C,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE3B,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBACzC,4CAA4C;gBAC5C,eAAe,GAAG;oBAChB,iBAAiB,EAAE,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;oBAClD,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,SAAS;iBAClB,CAAC;gBAEF,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;oBAClB,eAAe,EAAE,CAAC,eAAe,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,8DAA8D;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzC,IACE,CAAC,YAAY,CAAC,eAAe;YAC7B,YAAY,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EACzC,CAAC;YACD,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAExC,qCAAqC;QACrC,IAAI,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxE,SAAS;QACX,CAAC;QAED,mEAAmE;QACnE,IAAI,cAAc,GAAkB,IAAI,CAAC;QACzC,IAAI,UAAU,CAAC,cAAc,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,KAAK,MAAM,EAAE,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC9C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,cAAc,GAAG,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAClD,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,eAAe,GAAQ,IAAI,CAAC;YAChC,MAAM,QAAQ,GAAG,cAAc,CAAC;YAChC,MAAM,WAAW,GAAG,IAAA,2CAAwB,EAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAC1E,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1E,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAElE,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAC5C,CAAC,GAAQ,EAAE,KAAa,EAAE,EAAE;gBAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjB,OAAO,GAAG,CAAC;gBACb,CAAC;gBACD,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC,EACD,WAAW,CACZ,CAAC;YAEF,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC;YAC9C,MAAM,YAAY,GAAG,eAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAChD,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE9B,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBAC/C,eAAe,GAAG;oBAChB,iBAAiB,EAAE,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;oBAClD,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,YAAY;iBACrB,CAAC;gBAEF,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE;oBACnB,eAAe,EAAE,CAAC,eAAe,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;YACD,qEAAqE;QACvE,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,sDAAsD,KAAK,CAAC,IAAI,CAC9D,OAAO,CACR,6FAA6F,CAC/F,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.snapshotEvmHdIndex = snapshotEvmHdIndex;
4
+ function snapshotEvmHdIndex(value) {
5
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
6
+ throw new TypeError('Invalid Ethereum HD account index');
7
+ }
8
+ const prototype = Object.getPrototypeOf(value);
9
+ const names = Reflect.ownKeys(value);
10
+ const index = Object.getOwnPropertyDescriptor(value, 'index');
11
+ if ((prototype !== Object.prototype && prototype !== null) ||
12
+ names.length !== 1 ||
13
+ names[0] !== 'index' ||
14
+ !index ||
15
+ !index.enumerable ||
16
+ !('value' in index) ||
17
+ !Number.isSafeInteger(index.value) ||
18
+ index.value < 0 ||
19
+ index.value > 0x7fffffff)
20
+ throw new TypeError('Invalid Ethereum HD account index');
21
+ return index.value;
22
+ }
23
+ //# sourceMappingURL=software-hd-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"software-hd-account.js","sourceRoot":"","sources":["../../src/software-hd-account.ts"],"names":[],"mappings":";;AAmBA,gDAoBC;AApBD,SAAgB,kBAAkB,CAAC,KAAiC;IAClE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9D,IACE,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC;QACtD,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO;QACpB,CAAC,KAAK;QACN,CAAC,KAAK,CAAC,UAAU;QACjB,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC;QACnB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;QAClC,KAAK,CAAC,KAAK,GAAG,CAAC;QACf,KAAK,CAAC,KAAK,GAAG,UAAU;QAExB,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INetworkType = exports.KeyringAccountType = exports.SoftwareKeyring = exports.createSoftwareKeyringHost = void 0;
4
+ /** Software-only entry: explicit host storage, no browser/device initialization. */
5
+ const keyring_core_1 = require("./keyring-core");
6
+ const storage_core_1 = require("./storage-core");
7
+ const hosts = new WeakMap();
8
+ /** Create once per wallet authority, then share with its per-network keyrings. */
9
+ const createSoftwareKeyringHost = (storage) => {
10
+ const vaultPersistence = (0, storage_core_1.createVaultPersistence)(storage);
11
+ if (typeof storage.deleteItem !== 'function') {
12
+ throw new TypeError('Keyring storage port must provide deleteItem');
13
+ }
14
+ const host = Object.freeze({});
15
+ hosts.set(host, { storage, vaultPersistence });
16
+ return host;
17
+ };
18
+ exports.createSoftwareKeyringHost = createSoftwareKeyringHost;
19
+ const requireHost = (host) => {
20
+ const dependencies = hosts.get(host);
21
+ if (!dependencies)
22
+ throw new TypeError('Invalid software keyring host');
23
+ return dependencies;
24
+ };
25
+ class SoftwareKeyring extends keyring_core_1.KeyringCore {
26
+ constructor(host) {
27
+ const dependencies = requireHost(host);
28
+ super({
29
+ authority: host,
30
+ storage: dependencies.storage,
31
+ vaultPersistence: dependencies.vaultPersistence,
32
+ ledgerSigner: undefined,
33
+ trezorSigner: undefined,
34
+ });
35
+ /** Software authorities cannot rebind their backing store after creation. */
36
+ this.setStorage = (client) => {
37
+ void client;
38
+ throw new Error('Storage replacement is unavailable in this host');
39
+ };
40
+ /** Sessions may move only through the core's same-authority transfer path. */
41
+ this.receiveSessionOwnership = (...session) => {
42
+ void session;
43
+ throw new Error('Direct session injection is unavailable in this host');
44
+ };
45
+ }
46
+ /**
47
+ * Derive a fixed-path Ethereum HD runtime account without network or storage
48
+ * writes. The returned password-encrypted xprv is internal runtime state,
49
+ * never a public account/catalogue DTO. The host owns index allocation.
50
+ */
51
+ deriveEvmHdRuntimeAccount(request, options) {
52
+ return this.deriveSoftwareEvmHdRuntimeAccount(request, options);
53
+ }
54
+ /**
55
+ * Sign exactly the prepared envelope without RPC, fee/nonce discovery or
56
+ * broadcasting. The host must journal the result before submitting it.
57
+ * A later lock cannot revoke already returned signed bytes.
58
+ */
59
+ signPreparedEvmTransaction(request, options) {
60
+ return this.signPreparedSoftwareEvmTransaction(request, options);
61
+ }
62
+ static async createInitialized(host, seed, password, vaultStateGetter) {
63
+ const keyring = new SoftwareKeyring(host);
64
+ keyring.setVaultStateGetter(vaultStateGetter);
65
+ await keyring.initializeWalletSecurely(seed, password);
66
+ return keyring;
67
+ }
68
+ }
69
+ exports.SoftwareKeyring = SoftwareKeyring;
70
+ var types_1 = require("./types");
71
+ Object.defineProperty(exports, "KeyringAccountType", { enumerable: true, get: function () { return types_1.KeyringAccountType; } });
72
+ var sysweb3_network_1 = require("@sidhujag/sysweb3-network");
73
+ Object.defineProperty(exports, "INetworkType", { enumerable: true, get: function () { return sysweb3_network_1.INetworkType; } });
74
+ //# sourceMappingURL=software.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"software.js","sourceRoot":"","sources":["../../src/software.ts"],"names":[],"mappings":";;;AAAA,oFAAoF;AACpF,iDAA6C;AAC7C,iDAAwD;AAqBxD,MAAM,KAAK,GAAG,IAAI,OAAO,EAMtB,CAAC;AAEJ,kFAAkF;AAC3E,MAAM,yBAAyB,GAAG,CACvC,OAA2B,EACN,EAAE;IACvB,MAAM,gBAAgB,GAAG,IAAA,qCAAsB,EAAC,OAAO,CAAC,CAAC;IACzD,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC7C,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAwB,CAAC;IACtD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAVW,QAAA,yBAAyB,6BAUpC;AAEF,MAAM,WAAW,GAAG,CAAC,IAAyB,EAAE,EAAE;IAChD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACxE,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,MAAa,eAAgB,SAAQ,0BAAiC;IACpE,YAAY,IAAyB;QACnC,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,KAAK,CAAC;YACJ,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;YAC/C,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC;QA2BL,6EAA6E;QAC7D,eAAU,GAAG,CAAC,MAAW,EAAS,EAAE;YAClD,KAAK,MAAM,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC,CAAC;QAEF,8EAA8E;QAC9D,4BAAuB,GAAG,CACxC,GAAG,OAA2D,EACvD,EAAE;YACT,KAAK,OAAO,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC,CAAC;IAtCF,CAAC;IAED;;;;OAIG;IACI,yBAAyB,CAC9B,OAAmC,EACnC,OAAmC;QAEnC,OAAO,IAAI,CAAC,iCAAiC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACI,0BAA0B,CAC/B,OAA0C,EAC1C,OAAkC;QAElC,OAAO,IAAI,CAAC,kCAAkC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAgBM,MAAM,CAAC,KAAK,CAAC,iBAAiB,CACnC,IAAyB,EACzB,IAAY,EACZ,QAAgB,EAChB,gBAA2B;QAE3B,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA7DD,0CA6DC;AAED,iCAA6C;AAApC,2GAAA,kBAAkB,OAAA;AAC3B,6DAAyD;AAAhD,+GAAA,YAAY,OAAA"}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createVaultPersistence = exports.VaultAuthenticationError = void 0;
7
+ const crypto_js_1 = __importDefault(require("crypto-js"));
8
+ // Simple async mutex implementation to prevent concurrent vault operations
9
+ class AsyncMutex {
10
+ constructor() {
11
+ this.mutex = Promise.resolve();
12
+ }
13
+ async runExclusive(callback) {
14
+ const oldMutex = this.mutex;
15
+ let release;
16
+ this.mutex = new Promise((resolve) => {
17
+ release = resolve;
18
+ });
19
+ await oldMutex;
20
+ try {
21
+ return await callback();
22
+ }
23
+ finally {
24
+ release();
25
+ }
26
+ }
27
+ }
28
+ const isHex = (s) => /^[0-9a-fA-F]+$/.test(s);
29
+ const hexToBytes = (hex) => {
30
+ const clean = (hex || '').trim();
31
+ if (!isHex(clean) || clean.length % 2 !== 0) {
32
+ throw new Error('Invalid hex string');
33
+ }
34
+ const out = new Uint8Array(clean.length / 2);
35
+ for (let i = 0; i < out.length; i++) {
36
+ out[i] = parseInt(clean.slice(i * 2, i * 2 + 2), 16);
37
+ }
38
+ return out;
39
+ };
40
+ const bytesToHex = (bytes) => {
41
+ const u8 = new Uint8Array(bytes);
42
+ let hex = '';
43
+ for (let i = 0; i < u8.length; i++) {
44
+ hex += u8[i].toString(16).padStart(2, '0');
45
+ }
46
+ return hex;
47
+ };
48
+ const maybeParseGcmEnvelope = (raw) => {
49
+ if (!raw || typeof raw !== 'string')
50
+ return null;
51
+ if (!raw.trim().startsWith('{'))
52
+ return null;
53
+ try {
54
+ const parsed = JSON.parse(raw);
55
+ if (parsed &&
56
+ parsed.v === 4 &&
57
+ parsed.alg === 'A256GCM' &&
58
+ typeof parsed.iv === 'string' &&
59
+ typeof parsed.ct === 'string') {
60
+ return parsed;
61
+ }
62
+ return null;
63
+ }
64
+ catch {
65
+ return null;
66
+ }
67
+ };
68
+ const encryptVaultWebCrypto = async (plaintextJson, keyHex) => {
69
+ const subtle = globalThis.crypto.subtle;
70
+ const iv = new Uint8Array(12);
71
+ globalThis.crypto.getRandomValues(iv);
72
+ const keyBytes = hexToBytes(keyHex);
73
+ if (keyBytes.length !== 32) {
74
+ throw new Error('Vault key must be 32 bytes (hex length 64)');
75
+ }
76
+ const key = await subtle.importKey('raw', keyBytes, { name: 'AES-GCM' }, false, ['encrypt']);
77
+ const pt = new TextEncoder().encode(plaintextJson);
78
+ const ct = await subtle.encrypt({ name: 'AES-GCM', iv: iv }, key, pt);
79
+ return {
80
+ v: 4,
81
+ alg: 'A256GCM',
82
+ iv: bytesToHex(iv.buffer),
83
+ ct: bytesToHex(ct),
84
+ };
85
+ };
86
+ class VaultAuthenticationError extends Error {
87
+ constructor() {
88
+ super('Failed to decrypt vault - invalid password or corrupted data');
89
+ this.code = 'INVALID_PASSWORD';
90
+ this.name = 'VaultAuthenticationError';
91
+ }
92
+ }
93
+ exports.VaultAuthenticationError = VaultAuthenticationError;
94
+ const invalidPasswordError = () => new VaultAuthenticationError();
95
+ const decryptVaultWebCrypto = async (envelope, keyHex) => {
96
+ const subtle = globalThis?.crypto?.subtle;
97
+ if (!subtle) {
98
+ throw new Error('WebCrypto is required to decrypt this vault');
99
+ }
100
+ const keyBytes = hexToBytes(keyHex);
101
+ if (keyBytes.length !== 32) {
102
+ throw new Error('Vault key must be 32 bytes (hex length 64)');
103
+ }
104
+ const key = await subtle.importKey('raw', keyBytes, { name: 'AES-GCM' }, false, ['decrypt']);
105
+ const ivBytes = hexToBytes(envelope.iv);
106
+ const ctBytes = hexToBytes(envelope.ct);
107
+ if (ivBytes.length !== 12 || ctBytes.length < 16) {
108
+ throw new Error('Invalid encrypted vault format');
109
+ }
110
+ let pt;
111
+ try {
112
+ pt = await subtle.decrypt({ name: 'AES-GCM', iv: ivBytes }, key, ctBytes);
113
+ }
114
+ catch (error) {
115
+ // Only a failed authentication tag is a password/ciphertext failure.
116
+ // Key import and other platform exceptions must remain operational.
117
+ if (error?.name === 'OperationError') {
118
+ throw invalidPasswordError();
119
+ }
120
+ throw error;
121
+ }
122
+ return new TextDecoder().decode(pt);
123
+ };
124
+ /**
125
+ * Create once per wallet authority and share across its network keyrings.
126
+ * The host owns storage durability and cross-context atomic creation.
127
+ */
128
+ const createVaultPersistence = (storage) => {
129
+ if (!storage ||
130
+ typeof storage.get !== 'function' ||
131
+ typeof storage.set !== 'function' ||
132
+ typeof storage.createManyIfAbsent !== 'function') {
133
+ throw new TypeError('Vault storage port must provide get, set, and createManyIfAbsent methods');
134
+ }
135
+ const vaultMutex = new AsyncMutex();
136
+ // Single vault for all networks; derivation remains the keyring's concern.
137
+ const setEncryptedVault = async (decryptedVault, pwd, freshVaultKeys) => {
138
+ return vaultMutex.runExclusive(async () => {
139
+ const plaintext = JSON.stringify(decryptedVault);
140
+ // Writes never downgrade to unauthenticated passphrase AES. Legacy CBC
141
+ // remains readable below, but missing WebCrypto is an operational failure.
142
+ const canUseWebCrypto = !!globalThis?.crypto?.subtle &&
143
+ !!globalThis?.crypto?.getRandomValues;
144
+ if (!canUseWebCrypto) {
145
+ throw new Error('WebCrypto is required for vault encryption');
146
+ }
147
+ if (typeof pwd !== 'string' || !isHex(pwd) || pwd.length !== 64) {
148
+ throw new Error('Vault key must be 32 bytes (hex length 64)');
149
+ }
150
+ const envelope = await encryptVaultWebCrypto(plaintext, pwd);
151
+ const toStore = JSON.stringify(envelope);
152
+ if (freshVaultKeys) {
153
+ // The host primitive covers the absence check and batch commit
154
+ // across all clients that can initialize the same persisted authority.
155
+ const created = await storage.createManyIfAbsent({
156
+ 'vault-keys': freshVaultKeys,
157
+ vault: toStore,
158
+ });
159
+ if (typeof created !== 'boolean')
160
+ throw new Error('Atomic storage creation returned an invalid result');
161
+ if (!created)
162
+ throw new Error('Cannot initialize a new vault over existing wallet storage');
163
+ }
164
+ else {
165
+ // Existing vault updates retain their migration-specific write ordering.
166
+ await storage.set('vault', toStore);
167
+ }
168
+ });
169
+ };
170
+ const getDecryptedVault = async (pwd, legacyPassword) => {
171
+ return vaultMutex.runExclusive(async () => {
172
+ // Always use single 'vault' key
173
+ const vault = await storage.get('vault');
174
+ if (!vault) {
175
+ throw new Error('Vault not found');
176
+ }
177
+ // Prefer WebCrypto AES-GCM when the stored vault is in v4 envelope format.
178
+ const maybeEnvelope = maybeParseGcmEnvelope(vault);
179
+ if (!maybeEnvelope &&
180
+ typeof vault === 'string' &&
181
+ vault.trim().startsWith('{')) {
182
+ // Legacy CBC vaults are base64. A JSON-shaped record must be a valid
183
+ // GCM envelope rather than being misreported as a password failure.
184
+ throw new Error('Invalid encrypted vault format');
185
+ }
186
+ let decryptedVault;
187
+ if (maybeEnvelope) {
188
+ decryptedVault = await decryptVaultWebCrypto(maybeEnvelope, pwd);
189
+ }
190
+ else {
191
+ // Legacy CryptoJS passphrase-AES vault (v3 and older v4 canary).
192
+ // An interrupted migration can already have written CBC with the
193
+ // derived key while the metadata still selects the legacy password.
194
+ for (const candidateKey of new Set([legacyPassword ?? pwd, pwd])) {
195
+ let plaintext;
196
+ try {
197
+ plaintext = crypto_js_1.default.AES.decrypt(vault, candidateKey).toString(crypto_js_1.default.enc.Utf8);
198
+ }
199
+ catch (error) {
200
+ if (error?.message === 'Malformed UTF-8 data')
201
+ continue;
202
+ throw error;
203
+ }
204
+ if (!plaintext)
205
+ continue;
206
+ try {
207
+ return JSON.parse(plaintext);
208
+ }
209
+ catch (error) {
210
+ // CBC has no authentication tag; invalid plaintext is the only
211
+ // available indication of a bad password/ciphertext.
212
+ if (!(error instanceof SyntaxError))
213
+ throw error;
214
+ }
215
+ }
216
+ throw invalidPasswordError();
217
+ }
218
+ if (!decryptedVault) {
219
+ throw invalidPasswordError();
220
+ }
221
+ return JSON.parse(decryptedVault);
222
+ });
223
+ };
224
+ return { setEncryptedVault, getDecryptedVault };
225
+ };
226
+ exports.createVaultPersistence = createVaultPersistence;
227
+ //# sourceMappingURL=storage-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-core.js","sourceRoot":"","sources":["../../src/storage-core.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAiC;AA0BjC,2EAA2E;AAC3E,MAAM,UAAU;IAAhB;QACU,UAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAiBpC,CAAC;IAfC,KAAK,CAAC,YAAY,CAAI,QAA0B;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAE5B,IAAI,OAAmB,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,CAAC;QACf,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,EAAE,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,OAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF;AAED,MAAM,KAAK,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAE/D,MAAM,UAAU,GAAG,CAAC,GAAW,EAAc,EAAE;IAC7C,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAkB,EAAU,EAAE;IAChD,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,GAAQ,EAA6B,EAAE;IACpE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgC,CAAC;QAC9D,IACE,MAAM;YACN,MAAM,CAAC,CAAC,KAAK,CAAC;YACd,MAAM,CAAC,GAAG,KAAK,SAAS;YACxB,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ;YAC7B,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAC7B,CAAC;YACD,OAAO,MAA4B,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,KAAK,EACjC,aAAqB,EACrB,MAAc,EACe,EAAE;IAC/B,MAAM,MAAM,GAAI,UAAkB,CAAC,MAAM,CAAC,MAAsB,CAAC;IACjE,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7B,UAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAChC,KAAK,EACL,QAAmC,EACnC,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,KAAK,EACL,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAC7B,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAA6B,EAAE,EACtD,GAAG,EACH,EAA6B,CAC9B,CAAC;IAEF,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,GAAG,EAAE,SAAS;QACd,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC;QACzB,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;KACnB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAa,wBAAyB,SAAQ,KAAK;IAGjD;QACE,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAH/D,SAAI,GAAG,kBAAkB,CAAC;QAIjC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAPD,4DAOC;AAED,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,IAAI,wBAAwB,EAAE,CAAC;AAElE,MAAM,qBAAqB,GAAG,KAAK,EACjC,QAA4B,EAC5B,MAAc,EACG,EAAE;IACnB,MAAM,MAAM,GAAI,UAAkB,EAAE,MAAM,EAAE,MAE/B,CAAC;IACd,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAChC,KAAK,EACL,QAAmC,EACnC,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,KAAK,EACL,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,EAAe,CAAC;IACpB,IAAI,CAAC;QACH,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CACvB,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAkC,EAAE,EAC3D,GAAG,EACH,OAAkC,CACnC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qEAAqE;QACrE,oEAAoE;QACpE,IAAI,KAAK,EAAE,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACrC,MAAM,oBAAoB,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,sBAAsB,GAAG,CACpC,OAAyB,EACP,EAAE;IACpB,IACE,CAAC,OAAO;QACR,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU;QACjC,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU;QACjC,OAAO,OAAO,CAAC,kBAAkB,KAAK,UAAU,EAChD,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAEpC,2EAA2E;IAC3E,MAAM,iBAAiB,GAAG,KAAK,EAC7B,cAAmB,EACnB,GAAW,EACX,cAAiC,EACjC,EAAE;QACF,OAAO,UAAU,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAEjD,uEAAuE;YACvE,2EAA2E;YAC3E,MAAM,eAAe,GACnB,CAAC,CAAE,UAAkB,EAAE,MAAM,EAAE,MAAM;gBACrC,CAAC,CAAE,UAAkB,EAAE,MAAM,EAAE,eAAe,CAAC;YACjD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBAChE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEzC,IAAI,cAAc,EAAE,CAAC;gBACnB,+DAA+D;gBAC/D,uEAAuE;gBACvE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC;oBAC/C,YAAY,EAAE,cAAc;oBAC5B,KAAK,EAAE,OAAO;iBACf,CAAC,CAAC;gBACH,IAAI,OAAO,OAAO,KAAK,SAAS;oBAC9B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBACxE,IAAI,CAAC,OAAO;oBACV,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,yEAAyE;gBACzE,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,cAAuB,EAAE,EAAE;QACvE,OAAO,UAAU,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YACxC,gCAAgC;YAChC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YAED,2EAA2E;YAC3E,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACnD,IACE,CAAC,aAAa;gBACd,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAC5B,CAAC;gBACD,qEAAqE;gBACrE,oEAAoE;gBACpE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,cAAsB,CAAC;YAC3B,IAAI,aAAa,EAAE,CAAC;gBAClB,cAAc,GAAG,MAAM,qBAAqB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,iEAAiE;gBACjE,iEAAiE;gBACjE,oEAAoE;gBACpE,KAAK,MAAM,YAAY,IAAI,IAAI,GAAG,CAAC,CAAC,cAAc,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;oBACjE,IAAI,SAAiB,CAAC;oBACtB,IAAI,CAAC;wBACH,SAAS,GAAG,mBAAQ,CAAC,GAAG,CAAC,OAAO,CAC9B,KAAe,EACf,YAAY,CACb,CAAC,QAAQ,CAAC,mBAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAChC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,KAAK,EAAE,OAAO,KAAK,sBAAsB;4BAAE,SAAS;wBACxD,MAAM,KAAK,CAAC;oBACd,CAAC;oBACD,IAAI,CAAC,SAAS;wBAAE,SAAS;oBACzB,IAAI,CAAC;wBACH,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC/B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,+DAA+D;wBAC/D,qDAAqD;wBACrD,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;4BAAE,MAAM,KAAK,CAAC;oBACnD,CAAC;gBACH,CAAC;gBACD,MAAM,oBAAoB,EAAE,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,oBAAoB,EAAE,CAAC;YAC/B,CAAC;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;AAClD,CAAC,CAAC;AArHW,QAAA,sBAAsB,0BAqHjC"}