@sidhujag/sysweb3-keyring 1.0.628 → 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 (116) hide show
  1. package/CHANGELOG.md +22 -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 +93 -0
  6. package/cjs/keyring-core.js.map +1 -1
  7. package/cjs/keyring-manager.js +9 -3
  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 +16 -0
  19. package/cjs/software.js.map +1 -1
  20. package/cjs/transactions/ethereum.js +55 -10
  21. package/cjs/transactions/ethereum.js.map +1 -1
  22. package/cjs/transactions/hardware-psbt.js +36 -44
  23. package/cjs/transactions/hardware-psbt.js.map +1 -1
  24. package/cjs/transactions/prepared-evm.js +196 -0
  25. package/cjs/transactions/prepared-evm.js.map +1 -0
  26. package/cjs/trezor/connect.js +243 -0
  27. package/cjs/trezor/connect.js.map +1 -0
  28. package/cjs/trezor/index.js +96 -58
  29. package/cjs/trezor/index.js.map +1 -1
  30. package/cjs/trezor/witness.js +25 -0
  31. package/cjs/trezor/witness.js.map +1 -0
  32. package/cjs/utils/psbt-account-scope.js +5 -3
  33. package/cjs/utils/psbt-account-scope.js.map +1 -1
  34. package/esm/errorUtils.js +72 -0
  35. package/esm/errorUtils.js.map +1 -0
  36. package/esm/ethers-v6.js +207 -0
  37. package/esm/ethers-v6.js.map +1 -0
  38. package/esm/hardware-wallet-manager.js +643 -0
  39. package/esm/hardware-wallet-manager.js.map +1 -0
  40. package/esm/ledger/bitcoin_client/lib/appClient.js +279 -0
  41. package/esm/ledger/bitcoin_client/lib/appClient.js.map +1 -0
  42. package/esm/ledger/bitcoin_client/lib/bip32.js +49 -0
  43. package/esm/ledger/bitcoin_client/lib/bip32.js.map +1 -0
  44. package/esm/ledger/bitcoin_client/lib/buffertools.js +119 -0
  45. package/esm/ledger/bitcoin_client/lib/buffertools.js.map +1 -0
  46. package/esm/ledger/bitcoin_client/lib/clientCommands.js +269 -0
  47. package/esm/ledger/bitcoin_client/lib/clientCommands.js.map +1 -0
  48. package/esm/ledger/bitcoin_client/lib/merkelizedPsbt.js +50 -0
  49. package/esm/ledger/bitcoin_client/lib/merkelizedPsbt.js.map +1 -0
  50. package/esm/ledger/bitcoin_client/lib/merkle.js +111 -0
  51. package/esm/ledger/bitcoin_client/lib/merkle.js.map +1 -0
  52. package/esm/ledger/bitcoin_client/lib/merkleMap.js +42 -0
  53. package/esm/ledger/bitcoin_client/lib/merkleMap.js.map +1 -0
  54. package/esm/ledger/bitcoin_client/lib/policy.js +68 -0
  55. package/esm/ledger/bitcoin_client/lib/policy.js.map +1 -0
  56. package/esm/ledger/bitcoin_client/lib/psbtv2.js +645 -0
  57. package/esm/ledger/bitcoin_client/lib/psbtv2.js.map +1 -0
  58. package/esm/ledger/bitcoin_client/lib/varint.js +108 -0
  59. package/esm/ledger/bitcoin_client/lib/varint.js.map +1 -0
  60. package/esm/ledger/consts.js +4 -0
  61. package/esm/ledger/consts.js.map +1 -0
  62. package/esm/ledger/dmk-evm.js +258 -0
  63. package/esm/ledger/dmk-evm.js.map +1 -0
  64. package/esm/ledger/dmk-session.js +264 -0
  65. package/esm/ledger/dmk-session.js.map +1 -0
  66. package/esm/ledger/dmk-utxo.js +279 -0
  67. package/esm/ledger/dmk-utxo.js.map +1 -0
  68. package/esm/ledger/host-types.js +5 -0
  69. package/esm/ledger/host-types.js.map +1 -0
  70. package/esm/ledger/index.js +268 -0
  71. package/esm/ledger/index.js.map +1 -0
  72. package/esm/ledger/prepare-psbt.js +141 -0
  73. package/esm/ledger/prepare-psbt.js.map +1 -0
  74. package/esm/ledger/types.js +2 -0
  75. package/esm/ledger/types.js.map +1 -0
  76. package/esm/ledger-host.js +36 -0
  77. package/esm/ledger-host.js.map +1 -0
  78. package/esm/private-records.js +153 -0
  79. package/esm/private-records.js.map +1 -0
  80. package/esm/providers.js +588 -0
  81. package/esm/providers.js.map +1 -0
  82. package/esm/signers.js +28 -0
  83. package/esm/signers.js.map +1 -0
  84. package/esm/trezor/connect.js +206 -0
  85. package/esm/trezor/connect.js.map +1 -0
  86. package/esm/trezor/index.js +876 -0
  87. package/esm/trezor/index.js.map +1 -0
  88. package/esm/trezor/witness.js +21 -0
  89. package/esm/trezor/witness.js.map +1 -0
  90. package/esm/types.js +17 -0
  91. package/esm/types.js.map +1 -0
  92. package/esm/utils/derivation-paths.js +109 -0
  93. package/esm/utils/derivation-paths.js.map +1 -0
  94. package/esm/utils/psbt-account-scope.js +310 -0
  95. package/esm/utils/psbt-account-scope.js.map +1 -0
  96. package/package.json +21 -8
  97. package/types/hardware-wallet-manager.d.ts +12 -19
  98. package/types/keyring-core.d.ts +6 -0
  99. package/types/keyring-manager.d.ts +2 -1
  100. package/types/ledger/bitcoin_client/lib/appClient.d.ts +6 -3
  101. package/types/ledger/dmk-evm.d.ts +8 -0
  102. package/types/ledger/dmk-session.d.ts +60 -0
  103. package/types/ledger/dmk-utxo.d.ts +26 -0
  104. package/types/ledger/host-types.d.ts +131 -0
  105. package/types/ledger/index.d.ts +21 -58
  106. package/types/ledger/prepare-psbt.d.ts +3 -0
  107. package/types/ledger/types.d.ts +3 -0
  108. package/types/ledger-host.d.ts +7 -0
  109. package/types/software-hd-account.d.ts +16 -0
  110. package/types/software.d.ts +16 -0
  111. package/types/transactions/ethereum.d.ts +1 -1
  112. package/types/transactions/prepared-evm.d.ts +53 -0
  113. package/types/trezor/connect.d.ts +42 -0
  114. package/types/trezor/index.d.ts +22 -4
  115. package/types/trezor/witness.d.ts +3 -0
  116. package/types/utils/psbt-account-scope.d.ts +1 -0
@@ -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":"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"}
@@ -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"}
package/cjs/software.js CHANGED
@@ -43,6 +43,22 @@ class SoftwareKeyring extends keyring_core_1.KeyringCore {
43
43
  throw new Error('Direct session injection is unavailable in this host');
44
44
  };
45
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
+ }
46
62
  static async createInitialized(host, seed, password, vaultStateGetter) {
47
63
  const keyring = new SoftwareKeyring(host);
48
64
  keyring.setVaultStateGetter(vaultStateGetter);
@@ -1 +1 @@
1
- {"version":3,"file":"software.js","sourceRoot":"","sources":["../../src/software.ts"],"names":[],"mappings":";;;AAAA,oFAAoF;AACpF,iDAA6C;AAC7C,iDAAwD;AAWxD,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;QAGL,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;IAdF,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;AArCD,0CAqCC;AAED,iCAA6C;AAApC,2GAAA,kBAAkB,OAAA;AAC3B,6DAAyD;AAAhD,+GAAA,YAAY,OAAA"}
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"}
@@ -17,7 +17,35 @@ const derivation_paths_1 = require("../utils/derivation-paths");
17
17
  const hardwareSignerUnavailable = (hardware) => Object.assign(new Error(`${hardware} signer is unavailable in this host`), {
18
18
  code: 'HARDWARE_SIGNER_UNAVAILABLE',
19
19
  });
20
+ const assertHardwareTransactionSender = (signedTx, expectedAddress) => {
21
+ if (transaction_1.Transaction.from(signedTx).from?.toLowerCase() !==
22
+ expectedAddress.toLowerCase()) {
23
+ throw Object.assign(new Error('Hardware signature does not match the approved account'), {
24
+ code: 'HARDWARE_ACCOUNT_MISMATCH',
25
+ });
26
+ }
27
+ };
20
28
  const stripHexPrefix = (value) => value.startsWith('0x') || value.startsWith('0X') ? value.slice(2) : value;
29
+ // Connect returns hexadecimal signature fields; normalize their encoding
30
+ // without mutating the response or reparsing an already numeric recovery v.
31
+ const trezorSignature = (signature) => {
32
+ const { r, s, v } = signature;
33
+ if (![r, s].every((value) => /^(?:0x)?[0-9a-f]{64}$/i.test(value))) {
34
+ throw new Error('Invalid Trezor signature scalar encoding');
35
+ }
36
+ if (typeof v === 'string' && !/^(?:0x)?[0-9a-f]+$/i.test(v)) {
37
+ throw new Error('Invalid Trezor signature recovery value');
38
+ }
39
+ const recovery = typeof v === 'number' ? v : Number.parseInt(v, 16);
40
+ if (!Number.isSafeInteger(recovery) || recovery < 0) {
41
+ throw new Error('Invalid Trezor signature recovery value');
42
+ }
43
+ return {
44
+ r: `0x${stripHexPrefix(r)}`,
45
+ s: `0x${stripHexPrefix(s)}`,
46
+ v: recovery,
47
+ };
48
+ };
21
49
  const normalizeEthersOverrideValue = (value) => (0, ethers_v6_1.normalizeTxValue)(value);
22
50
  const nonNegativeFeeQuantity = (value, label) => {
23
51
  // Match the exported BigNumberish object contract without trusting a
@@ -219,6 +247,7 @@ class EthereumTransactions {
219
247
  return await this.requireLedgerSigner().evm.signTypedData({
220
248
  version,
221
249
  accountIndex: activeAccountId,
250
+ expectedAddress: activeAccount.address,
222
251
  data: typedData,
223
252
  });
224
253
  };
@@ -310,6 +339,7 @@ class EthereumTransactions {
310
339
  try {
311
340
  const response = await this.requireLedgerSigner().evm.signPersonalMessage({
312
341
  accountIndex: activeAccountId,
342
+ expectedAddress: activeAccount.address,
313
343
  message: msg,
314
344
  });
315
345
  return response;
@@ -403,6 +433,7 @@ class EthereumTransactions {
403
433
  }
404
434
  const response = await this.requireLedgerSigner().evm.signPersonalMessage({
405
435
  accountIndex: activeAccountId,
436
+ expectedAddress: activeAccount.address,
406
437
  message: messageForLedger,
407
438
  });
408
439
  return response;
@@ -929,6 +960,7 @@ class EthereumTransactions {
929
960
  const signature = await this.requireLedgerSigner().evm.signEVMTransaction({
930
961
  rawTx: rawTx.replace('0x', ''),
931
962
  accountIndex: activeAccountId,
963
+ expectedAddress: activeAccount.address,
932
964
  });
933
965
  assertCurrent();
934
966
  const formattedSignature = {
@@ -939,6 +971,7 @@ class EthereumTransactions {
939
971
  if (signature) {
940
972
  const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, formattedSignature);
941
973
  assertCurrent();
974
+ assertHardwareTransactionSender(signedTx, activeAccount.address);
942
975
  const transactionResponse = await provider.sendTransaction(signedTx);
943
976
  return {
944
977
  isCanceled: true,
@@ -1001,8 +1034,9 @@ class EthereumTransactions {
1001
1034
  });
1002
1035
  assertCurrent();
1003
1036
  if (signature.success) {
1004
- const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForTrezor, signature.payload);
1037
+ const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForTrezor, trezorSignature(signature.payload));
1005
1038
  assertCurrent();
1039
+ assertHardwareTransactionSender(signedTx, activeAccount.address);
1006
1040
  const transactionResponse = await provider.sendTransaction(signedTx);
1007
1041
  return {
1008
1042
  isCanceled: true,
@@ -1195,6 +1229,7 @@ class EthereumTransactions {
1195
1229
  const signature = await this.requireLedgerSigner().evm.signEVMTransaction({
1196
1230
  rawTx: rawTx.replace('0x', ''),
1197
1231
  accountIndex: activeAccountId,
1232
+ expectedAddress: activeAccount.address,
1198
1233
  });
1199
1234
  assertCurrent();
1200
1235
  const formattedSignature = {
@@ -1205,6 +1240,7 @@ class EthereumTransactions {
1205
1240
  if (signature) {
1206
1241
  try {
1207
1242
  const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, formattedSignature);
1243
+ assertHardwareTransactionSender(signedTx, activeAccount.address);
1208
1244
  assertBeforeBroadcast();
1209
1245
  const finalTx = await provider.sendTransaction(signedTx);
1210
1246
  return finalTx;
@@ -1287,8 +1323,8 @@ class EthereumTransactions {
1287
1323
  chainId: activeNetwork.chainId,
1288
1324
  type: 2, // Need explicit type for hardware wallet serialization
1289
1325
  };
1290
- signature.payload.v = parseInt(signature.payload.v, 16); //v parameter must be a number by ethers standards
1291
- const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, signature.payload);
1326
+ const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, trezorSignature(signature.payload));
1327
+ assertHardwareTransactionSender(signedTx, activeAccount.address);
1292
1328
  assertBeforeBroadcast();
1293
1329
  const finalTx = await provider.sendTransaction(signedTx);
1294
1330
  return finalTx;
@@ -1516,6 +1552,7 @@ class EthereumTransactions {
1516
1552
  const signature = await this.requireLedgerSigner().evm.signEVMTransaction({
1517
1553
  rawTx: rawTx.replace('0x', ''),
1518
1554
  accountIndex: activeAccountId,
1555
+ expectedAddress: activeAccount.address,
1519
1556
  });
1520
1557
  const formattedSignature = {
1521
1558
  r: `0x${signature.r}`,
@@ -1525,6 +1562,7 @@ class EthereumTransactions {
1525
1562
  if (signature) {
1526
1563
  const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, formattedSignature);
1527
1564
  assertSignedSender(signedTx);
1565
+ assertHardwareTransactionSender(signedTx, activeAccount.address);
1528
1566
  assertBeforeBroadcast();
1529
1567
  const transactionResponse = await provider.sendTransaction(signedTx);
1530
1568
  return {
@@ -1601,8 +1639,9 @@ class EthereumTransactions {
1601
1639
  slip44: activeNetwork.slip44,
1602
1640
  });
1603
1641
  if (signature.success) {
1604
- const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForTrezor, signature.payload);
1642
+ const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForTrezor, trezorSignature(signature.payload));
1605
1643
  assertSignedSender(signedTx);
1644
+ assertHardwareTransactionSender(signedTx, activeAccount.address);
1606
1645
  assertBeforeBroadcast();
1607
1646
  const transactionResponse = await provider.sendTransaction(signedTx);
1608
1647
  return {
@@ -1780,6 +1819,7 @@ class EthereumTransactions {
1780
1819
  const signature = await this.requireLedgerSigner().evm.signEVMTransaction({
1781
1820
  rawTx: rawTx.replace('0x', ''),
1782
1821
  accountIndex: activeAccountId,
1822
+ expectedAddress: activeAccount.address,
1783
1823
  });
1784
1824
  assertCurrent();
1785
1825
  const formattedSignature = {
@@ -1791,6 +1831,7 @@ class EthereumTransactions {
1791
1831
  try {
1792
1832
  const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, formattedSignature);
1793
1833
  assertCurrent();
1834
+ assertHardwareTransactionSender(signedTx, activeAccount.address);
1794
1835
  const finalTx = await provider.sendTransaction(signedTx);
1795
1836
  saveTrezorTx && saveTrezorTx(finalTx);
1796
1837
  return finalTx;
@@ -1880,9 +1921,9 @@ class EthereumTransactions {
1880
1921
  type: 2, // Need explicit type for hardware wallet serialization
1881
1922
  };
1882
1923
  }
1883
- signature.payload.v = parseInt(signature.payload.v, 16); //v parameter must be a number by ethers standards
1884
- const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, signature.payload);
1924
+ const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, trezorSignature(signature.payload));
1885
1925
  assertCurrent();
1926
+ assertHardwareTransactionSender(signedTx, activeAccount.address);
1886
1927
  const finalTx = await provider.sendTransaction(signedTx);
1887
1928
  saveTrezorTx && saveTrezorTx(finalTx);
1888
1929
  return finalTx;
@@ -2001,6 +2042,7 @@ class EthereumTransactions {
2001
2042
  const signature = await this.requireLedgerSigner().evm.signEVMTransaction({
2002
2043
  rawTx: rawTx.replace('0x', ''),
2003
2044
  accountIndex: activeAccountId,
2045
+ expectedAddress: activeAccount.address,
2004
2046
  });
2005
2047
  assertCurrent();
2006
2048
  const formattedSignature = {
@@ -2012,6 +2054,7 @@ class EthereumTransactions {
2012
2054
  try {
2013
2055
  const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, formattedSignature);
2014
2056
  assertCurrent();
2057
+ assertHardwareTransactionSender(signedTx, activeAccount.address);
2015
2058
  const finalTx = await provider.sendTransaction(signedTx);
2016
2059
  return finalTx;
2017
2060
  }
@@ -2102,9 +2145,9 @@ class EthereumTransactions {
2102
2145
  type: 2, // Need explicit type for hardware wallet serialization
2103
2146
  };
2104
2147
  }
2105
- signature.payload.v = parseInt(signature.payload.v, 16); //v parameter must be a number by ethers standards
2106
- const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, signature.payload);
2148
+ const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, trezorSignature(signature.payload));
2107
2149
  assertCurrent();
2150
+ assertHardwareTransactionSender(signedTx, activeAccount.address);
2108
2151
  const finalTx = await provider.sendTransaction(signedTx);
2109
2152
  return finalTx;
2110
2153
  }
@@ -2219,6 +2262,7 @@ class EthereumTransactions {
2219
2262
  const signature = await this.requireLedgerSigner().evm.signEVMTransaction({
2220
2263
  rawTx: rawTx.replace('0x', ''),
2221
2264
  accountIndex: activeAccountId,
2265
+ expectedAddress: activeAccount.address,
2222
2266
  });
2223
2267
  assertCurrent();
2224
2268
  const formattedSignature = {
@@ -2230,6 +2274,7 @@ class EthereumTransactions {
2230
2274
  try {
2231
2275
  const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, formattedSignature);
2232
2276
  assertCurrent();
2277
+ assertHardwareTransactionSender(signedTx, activeAccount.address);
2233
2278
  const finalTx = await provider.sendTransaction(signedTx);
2234
2279
  return finalTx;
2235
2280
  }
@@ -2314,9 +2359,9 @@ class EthereumTransactions {
2314
2359
  type: 2, // Need explicit type for hardware wallet serialization
2315
2360
  };
2316
2361
  }
2317
- signature.payload.v = parseInt(signature.payload.v, 16); //v parameter must be a number by ethers standards
2318
- const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, signature.payload);
2362
+ const signedTx = (0, ethers_v6_1.serializeTransaction)(txFormattedForEthers, trezorSignature(signature.payload));
2319
2363
  assertCurrent();
2364
+ assertHardwareTransactionSender(signedTx, activeAccount.address);
2320
2365
  const finalTx = await provider.sendTransaction(signedTx);
2321
2366
  return finalTx;
2322
2367
  }