@sidhujag/sysweb3-keyring 1.0.612 → 1.0.613
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.
- package/README.md +39 -1
- package/cjs/keyring-manager.js +181 -41
- package/cjs/keyring-manager.js.map +1 -1
- package/cjs/ledger/bitcoin_client/lib/psbtv2.js +11 -2
- package/cjs/ledger/bitcoin_client/lib/psbtv2.js.map +1 -1
- package/cjs/ledger/index.js +4 -0
- package/cjs/ledger/index.js.map +1 -1
- package/cjs/storage.js +26 -16
- package/cjs/storage.js.map +1 -1
- package/cjs/transactions/syscoin.js +108 -5
- package/cjs/transactions/syscoin.js.map +1 -1
- package/cjs/trezor/index.js +115 -31
- package/cjs/trezor/index.js.map +1 -1
- package/cjs/utils/psbt-account-scope.js +347 -0
- package/cjs/utils/psbt-account-scope.js.map +1 -0
- package/package.json +3 -2
- package/types/keyring-manager.d.ts +4 -0
- package/types/storage.d.ts +3 -1
- package/types/transactions/syscoin.d.ts +2 -1
- package/types/utils/psbt-account-scope.d.ts +17 -0
package/cjs/storage.js
CHANGED
|
@@ -96,7 +96,10 @@ class VaultAuthenticationError extends Error {
|
|
|
96
96
|
exports.VaultAuthenticationError = VaultAuthenticationError;
|
|
97
97
|
const invalidPasswordError = () => new VaultAuthenticationError();
|
|
98
98
|
const decryptVaultWebCrypto = async (envelope, keyHex) => {
|
|
99
|
-
const subtle = globalThis
|
|
99
|
+
const subtle = globalThis?.crypto?.subtle;
|
|
100
|
+
if (!subtle) {
|
|
101
|
+
throw new Error('WebCrypto is required to decrypt this vault');
|
|
102
|
+
}
|
|
100
103
|
const keyBytes = hexToBytes(keyHex);
|
|
101
104
|
if (keyBytes.length !== 32) {
|
|
102
105
|
throw new Error('Vault key must be 32 bytes (hex length 64)');
|
|
@@ -122,28 +125,35 @@ const decryptVaultWebCrypto = async (envelope, keyHex) => {
|
|
|
122
125
|
return new TextDecoder().decode(pt);
|
|
123
126
|
};
|
|
124
127
|
// Single vault for all networks - stores the mnemonic and can derive accounts for any slip44
|
|
125
|
-
const setEncryptedVault = async (decryptedVault, pwd) => {
|
|
128
|
+
const setEncryptedVault = async (decryptedVault, pwd, freshVaultKeys) => {
|
|
126
129
|
return vaultMutex.runExclusive(async () => {
|
|
127
130
|
const plaintext = JSON.stringify(decryptedVault);
|
|
128
|
-
//
|
|
129
|
-
//
|
|
130
|
-
// Fallback to CryptoJS passphrase-AES if WebCrypto is unavailable.
|
|
131
|
-
let toStore;
|
|
131
|
+
// Writes never downgrade to unauthenticated passphrase AES. Legacy CBC
|
|
132
|
+
// remains readable below, but missing WebCrypto is an operational failure.
|
|
132
133
|
const canUseWebCrypto = !!globalThis?.crypto?.subtle &&
|
|
133
134
|
!!globalThis?.crypto?.getRandomValues;
|
|
134
|
-
if (canUseWebCrypto
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
135
|
+
if (!canUseWebCrypto) {
|
|
136
|
+
throw new Error('WebCrypto is required for vault encryption');
|
|
137
|
+
}
|
|
138
|
+
if (typeof pwd !== 'string' || !isHex(pwd) || pwd.length !== 64) {
|
|
139
|
+
throw new Error('Vault key must be 32 bytes (hex length 64)');
|
|
140
|
+
}
|
|
141
|
+
const envelope = await encryptVaultWebCrypto(plaintext, pwd);
|
|
142
|
+
const toStore = JSON.stringify(envelope);
|
|
143
|
+
if (freshVaultKeys) {
|
|
144
|
+
// The backend primitive (or native storage Web Lock) covers both the
|
|
145
|
+
// absence check and batch commit across independently bundled contexts.
|
|
146
|
+
const created = await storage.createManyIfAbsent({
|
|
147
|
+
'vault-keys': freshVaultKeys,
|
|
148
|
+
vault: toStore,
|
|
149
|
+
});
|
|
150
|
+
if (!created)
|
|
151
|
+
throw new Error('Cannot initialize a new vault over existing wallet storage');
|
|
140
152
|
}
|
|
141
153
|
else {
|
|
142
|
-
|
|
143
|
-
|
|
154
|
+
// Existing vault updates retain their migration-specific write ordering.
|
|
155
|
+
await storage.set('vault', toStore);
|
|
144
156
|
}
|
|
145
|
-
// Always use single 'vault' key for all networks
|
|
146
|
-
await storage.set('vault', toStore);
|
|
147
157
|
});
|
|
148
158
|
};
|
|
149
159
|
exports.setEncryptedVault = setEncryptedVault;
|
package/cjs/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,11 +44,12 @@ const types_1 = require("../types");
|
|
|
44
44
|
const blockbook_cache_1 = require("../utils/blockbook-cache");
|
|
45
45
|
const derivation_paths_1 = require("../utils/derivation-paths");
|
|
46
46
|
const psbt_1 = require("../utils/psbt");
|
|
47
|
+
const psbt_account_scope_1 = require("../utils/psbt-account-scope");
|
|
47
48
|
// Recommended fee changes slowly; cache per explorer to avoid hammering
|
|
48
49
|
// Blockbook while the user edits amounts on the send screen
|
|
49
50
|
const FEE_CACHE_TTL_MS = 60000;
|
|
50
51
|
class SyscoinTransactions {
|
|
51
|
-
constructor(getSyscoinSigner, getReadOnlySigner, getState, getAddress, ledgerSigner, trezorSigner) {
|
|
52
|
+
constructor(getSyscoinSigner, getReadOnlySigner, getState, getAddress, ledgerSigner, trezorSigner, captureSigningContext) {
|
|
52
53
|
this.getTransactionPSBT = async ({ txOptions, outputs, changeAddress, feeRateBN, xpub }, main) => {
|
|
53
54
|
try {
|
|
54
55
|
// Use syscoinjs-lib directly for transaction creation
|
|
@@ -199,6 +200,41 @@ class SyscoinTransactions {
|
|
|
199
200
|
// Sign PSBT with appropriate method - separated for better error handling
|
|
200
201
|
this.signPSBTWithMethod = async (psbt, isTrezor, isLedger = false) => {
|
|
201
202
|
const { activeNetwork, activeAccountId, activeAccountType, accounts } = this.getState();
|
|
203
|
+
const account = accounts[activeAccountType]?.[activeAccountId];
|
|
204
|
+
if (!account)
|
|
205
|
+
throw new Error('Active account not found');
|
|
206
|
+
// Device choice belongs to the selected account, never to PSBT/caller flags.
|
|
207
|
+
isTrezor =
|
|
208
|
+
activeAccountType === types_1.KeyringAccountType.Trezor ||
|
|
209
|
+
account.isTrezorWallet === true;
|
|
210
|
+
isLedger =
|
|
211
|
+
activeAccountType === types_1.KeyringAccountType.Ledger ||
|
|
212
|
+
account.isLedgerWallet === true;
|
|
213
|
+
const assertSession = this.captureSigningContext?.() || (() => undefined);
|
|
214
|
+
const scope = {
|
|
215
|
+
account: { address: account.address, xpub: account.xpub },
|
|
216
|
+
accountId: activeAccountId,
|
|
217
|
+
accountType: activeAccountType,
|
|
218
|
+
network: { ...activeNetwork },
|
|
219
|
+
};
|
|
220
|
+
const assertCurrent = () => {
|
|
221
|
+
assertSession();
|
|
222
|
+
const current = this.getState();
|
|
223
|
+
const selected = current.accounts[current.activeAccountType]?.[current.activeAccountId];
|
|
224
|
+
if (current.activeAccountId !== activeAccountId ||
|
|
225
|
+
current.activeAccountType !== activeAccountType ||
|
|
226
|
+
selected?.address !== scope.account.address ||
|
|
227
|
+
selected?.xpub !== scope.account.xpub ||
|
|
228
|
+
current.activeNetwork.kind !== scope.network.kind ||
|
|
229
|
+
current.activeNetwork.chainId !== scope.network.chainId ||
|
|
230
|
+
current.activeNetwork.slip44 !== scope.network.slip44 ||
|
|
231
|
+
current.activeNetwork.url !== scope.network.url) {
|
|
232
|
+
throw new Error('Wallet signing context changed');
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
assertCurrent();
|
|
236
|
+
if (isTrezor || isLedger)
|
|
237
|
+
(0, psbt_account_scope_1.assertPsbtAccountScope)(psbt, scope);
|
|
202
238
|
if (isLedger) {
|
|
203
239
|
// CRITICAL: Enhance PSBT with required Ledger fields
|
|
204
240
|
const account = accounts[activeAccountType]?.[activeAccountId];
|
|
@@ -218,9 +254,16 @@ class SyscoinTransactions {
|
|
|
218
254
|
if (Array.isArray(inputMetas) &&
|
|
219
255
|
Array.isArray(txInputs) &&
|
|
220
256
|
txInputs.length > 0) {
|
|
221
|
-
// Fetch and add nonWitnessUtxo
|
|
257
|
+
// Fetch and add nonWitnessUtxo where Ledger still needs it.
|
|
222
258
|
const txFetchPromises = txInputs.map(async (_txInput, index) => {
|
|
223
259
|
try {
|
|
260
|
+
// Keep existing previous transactions, and finalized witness
|
|
261
|
+
// inputs that already carry the prevout data needed by Ledger.
|
|
262
|
+
const input = inputMetas[index];
|
|
263
|
+
if (input?.nonWitnessUtxo ||
|
|
264
|
+
(input?.witnessUtxo &&
|
|
265
|
+
(input.finalScriptSig || input.finalScriptWitness)))
|
|
266
|
+
return { index, success: true };
|
|
224
267
|
const tx = txInputs[index];
|
|
225
268
|
const prevTxId = Buffer.from(tx.hash).reverse().toString('hex');
|
|
226
269
|
// Fetch the raw transaction
|
|
@@ -267,7 +310,10 @@ class SyscoinTransactions {
|
|
|
267
310
|
`Ledger devices require this data for signing.`);
|
|
268
311
|
}
|
|
269
312
|
}
|
|
313
|
+
assertCurrent();
|
|
270
314
|
const enhancedPsbt = await this.ledger.convertToLedgerFormat(psbt, accountXpub, accountId, activeNetwork.currency, activeNetwork.slip44);
|
|
315
|
+
assertCurrent();
|
|
316
|
+
(0, psbt_account_scope_1.assertPsbtAccountScope)(enhancedPsbt, scope);
|
|
271
317
|
// Get wallet policy for Ledger
|
|
272
318
|
const fingerprint = await this.ledger.ledgerUtxoClient.getMasterFingerprint();
|
|
273
319
|
const hdPath = (0, derivation_paths_1.getAccountDerivationPath)(activeNetwork.currency, activeNetwork.slip44, accountId);
|
|
@@ -294,14 +340,27 @@ class SyscoinTransactions {
|
|
|
294
340
|
}
|
|
295
341
|
// Convert to PsbtV2 for direct signing without intermediate base64 encode/decode
|
|
296
342
|
const psbtV2 = new psbtv2_1.PsbtV2().fromBitcoinJS(enhancedPsbt);
|
|
343
|
+
assertCurrent();
|
|
344
|
+
(0, psbt_account_scope_1.assertPsbtAccountScope)(enhancedPsbt, scope);
|
|
297
345
|
const signatureEntries = await this.ledger.ledgerUtxoClient.signPsbt(psbtV2, walletPolicy, hmac);
|
|
346
|
+
assertCurrent();
|
|
298
347
|
signatureEntries.forEach(([inputIndex, partialSig]) => {
|
|
348
|
+
const input = enhancedPsbt.data.inputs[inputIndex];
|
|
349
|
+
if (!input ||
|
|
350
|
+
input.finalScriptSig ||
|
|
351
|
+
input.finalScriptWitness ||
|
|
352
|
+
!input.bip32Derivation?.some((derivation) => Buffer.from(derivation.pubkey).equals(Buffer.from(partialSig.pubkey)))) {
|
|
353
|
+
throw new Error('PSBT input is outside the approved account');
|
|
354
|
+
}
|
|
299
355
|
enhancedPsbt.updateInput(inputIndex, {
|
|
300
356
|
partialSig: [partialSig],
|
|
301
357
|
});
|
|
302
358
|
});
|
|
303
|
-
//
|
|
304
|
-
enhancedPsbt.
|
|
359
|
+
// Preserve external inputs that were finalized before device signing.
|
|
360
|
+
enhancedPsbt.data.inputs.forEach((input, index) => {
|
|
361
|
+
if (!input.finalScriptSig && !input.finalScriptWitness)
|
|
362
|
+
enhancedPsbt.finalizeInput(index);
|
|
363
|
+
});
|
|
305
364
|
return enhancedPsbt;
|
|
306
365
|
}
|
|
307
366
|
else if (isTrezor) {
|
|
@@ -317,7 +376,9 @@ class SyscoinTransactions {
|
|
|
317
376
|
coin: activeNetwork.currency.toLowerCase(),
|
|
318
377
|
network: bitcoinjsNetwork || undefined, // Pass network config for isScriptHash check
|
|
319
378
|
});
|
|
379
|
+
assertCurrent();
|
|
320
380
|
const signedPsbt = await this.trezor.signUtxoTransaction(trezorTx, psbt);
|
|
381
|
+
assertCurrent();
|
|
321
382
|
return signedPsbt;
|
|
322
383
|
}
|
|
323
384
|
else {
|
|
@@ -362,7 +423,9 @@ class SyscoinTransactions {
|
|
|
362
423
|
}
|
|
363
424
|
const needsAnyPath = psbt?.data?.inputs?.some((input) => {
|
|
364
425
|
const unknowns = input?.unknownKeyVals || [];
|
|
365
|
-
return !
|
|
426
|
+
return (!input.bip32Derivation?.length &&
|
|
427
|
+
!input.tapBip32Derivation?.length &&
|
|
428
|
+
!unknowns.some((kv) => kv?.key?.toString?.() === 'path'));
|
|
366
429
|
});
|
|
367
430
|
if (needsAnyPath &&
|
|
368
431
|
accountXpub &&
|
|
@@ -419,11 +482,14 @@ class SyscoinTransactions {
|
|
|
419
482
|
catch (_e) {
|
|
420
483
|
// Best-effort enrichment; if it fails, fall back to default signing error path.
|
|
421
484
|
}
|
|
485
|
+
assertCurrent();
|
|
486
|
+
(0, psbt_account_scope_1.assertPsbtAccountScope)(psbt, scope);
|
|
422
487
|
const { hd } = this.getSigner();
|
|
423
488
|
const signedPsbt = await this.signPSBTWithSigner({
|
|
424
489
|
psbt,
|
|
425
490
|
signer: hd,
|
|
426
491
|
});
|
|
492
|
+
assertCurrent();
|
|
427
493
|
return signedPsbt;
|
|
428
494
|
}
|
|
429
495
|
};
|
|
@@ -532,7 +598,43 @@ class SyscoinTransactions {
|
|
|
532
598
|
};
|
|
533
599
|
this.signPSBT = async ({ psbt, isTrezor = false, isLedger = false, }) => {
|
|
534
600
|
const psbtObj = psbt_1.PsbtUtils.fromPali(psbt, this.getState().activeNetwork);
|
|
601
|
+
// Scope validation temporarily removes other signers' hints. Preserve the
|
|
602
|
+
// public metadata for the next cosigner, without exposing it to our signer.
|
|
603
|
+
const cosignerMetadata = psbtObj.data.inputs.map((input, index) => ({
|
|
604
|
+
hash: Buffer.from(psbtObj.txInputs[index].hash),
|
|
605
|
+
index: psbtObj.txInputs[index].index,
|
|
606
|
+
bip32Derivation: input.bip32Derivation?.map((value) => ({ ...value })),
|
|
607
|
+
tapBip32Derivation: input.tapBip32Derivation?.map((value) => ({
|
|
608
|
+
...value,
|
|
609
|
+
})),
|
|
610
|
+
path: input.unknownKeyVals
|
|
611
|
+
?.filter((value) => Buffer.from(value.key).toString() === 'path')
|
|
612
|
+
.map((value) => ({
|
|
613
|
+
key: Buffer.from(value.key),
|
|
614
|
+
value: Buffer.from(value.value),
|
|
615
|
+
}))[0],
|
|
616
|
+
}));
|
|
535
617
|
const signedPsbt = await this.signPSBTWithMethod(psbtObj, isTrezor, isLedger);
|
|
618
|
+
signedPsbt.data.inputs.forEach((input, index) => {
|
|
619
|
+
if (input.finalScriptSig || input.finalScriptWitness)
|
|
620
|
+
return;
|
|
621
|
+
const metadata = cosignerMetadata[index];
|
|
622
|
+
if (!metadata)
|
|
623
|
+
return;
|
|
624
|
+
const signed = signedPsbt.txInputs[index];
|
|
625
|
+
if (!signed ||
|
|
626
|
+
metadata.index !== signed.index ||
|
|
627
|
+
!metadata.hash.equals(Buffer.from(signed.hash)))
|
|
628
|
+
throw new Error('Wallet signing context changed');
|
|
629
|
+
if (metadata.bip32Derivation)
|
|
630
|
+
input.bip32Derivation = metadata.bip32Derivation;
|
|
631
|
+
if (metadata.tapBip32Derivation)
|
|
632
|
+
input.tapBip32Derivation = metadata.tapBip32Derivation;
|
|
633
|
+
if (metadata.path) {
|
|
634
|
+
input.unknownKeyVals = (input.unknownKeyVals || []).filter((value) => Buffer.from(value.key).toString() !== 'path');
|
|
635
|
+
input.unknownKeyVals.push(metadata.path);
|
|
636
|
+
}
|
|
637
|
+
});
|
|
536
638
|
return psbt_1.PsbtUtils.toPali(signedPsbt);
|
|
537
639
|
};
|
|
538
640
|
this.sendTransaction = async (psbt) => {
|
|
@@ -546,6 +648,7 @@ class SyscoinTransactions {
|
|
|
546
648
|
this.getState = getState;
|
|
547
649
|
this.getAddress = getAddress;
|
|
548
650
|
this.trezor = trezorSigner;
|
|
651
|
+
this.captureSigningContext = captureSigningContext;
|
|
549
652
|
this.ledger = ledgerSigner;
|
|
550
653
|
}
|
|
551
654
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syscoin.js","sourceRoot":"","sources":["../../../src/transactions/syscoin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"syscoin.js","sourceRoot":"","sources":["../../../src/transactions/syscoin.ts"],"names":[],"mappings":"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"}
|
package/cjs/trezor/index.js
CHANGED
|
@@ -53,6 +53,24 @@ const { fromBase58Check, fromBech32 } = utxo_lib_1.address;
|
|
|
53
53
|
const initialHDPath = `m/44'/60'/0'/0/0`;
|
|
54
54
|
const DELAY_BETWEEN_POPUPS = 2000; // Increased from 1000ms to 2000ms for more reliable operation
|
|
55
55
|
const stripHexPrefix = (value) => value.startsWith('0x') || value.startsWith('0X') ? value.slice(2) : value;
|
|
56
|
+
const serializeWitness = (witness) => {
|
|
57
|
+
const stack = witness.map((item) => buffer_1.Buffer.from(item));
|
|
58
|
+
const size = utxo_lib_1.bufferutils.varIntSize(stack.length) +
|
|
59
|
+
stack.reduce((total, item) => total + utxo_lib_1.bufferutils.varIntSize(item.length) + item.length, 0);
|
|
60
|
+
const writer = new utxo_lib_1.bufferutils.BufferWriter(buffer_1.Buffer.alloc(size));
|
|
61
|
+
writer.writeVector(stack);
|
|
62
|
+
return writer.buffer;
|
|
63
|
+
};
|
|
64
|
+
const finalizedFields = (input) => {
|
|
65
|
+
if (!input.finalScriptSig && !input.finalScriptWitness)
|
|
66
|
+
return null;
|
|
67
|
+
return {
|
|
68
|
+
scriptSig: buffer_1.Buffer.from(input.finalScriptSig || []).toString('hex'),
|
|
69
|
+
witness: input.finalScriptWitness
|
|
70
|
+
? buffer_1.Buffer.from(input.finalScriptWitness).toString('hex')
|
|
71
|
+
: '00',
|
|
72
|
+
};
|
|
73
|
+
};
|
|
56
74
|
class TrezorKeyring {
|
|
57
75
|
constructor() {
|
|
58
76
|
this.hdPath = initialHDPath;
|
|
@@ -319,34 +337,72 @@ class TrezorKeyring {
|
|
|
319
337
|
* @returns signature object
|
|
320
338
|
*/
|
|
321
339
|
async signUtxoTransaction(utxoTransaction, psbt) {
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
}
|
|
346
|
-
else {
|
|
347
|
-
throw new Error('Trezor sign failed: ' + payload.error);
|
|
348
|
-
}
|
|
340
|
+
// Capture approval before the device await. Witnesses and scriptSigs are
|
|
341
|
+
// signatures, but every unsigned transaction field must remain identical.
|
|
342
|
+
const unsignedSnapshot = (transaction) => JSON.stringify({
|
|
343
|
+
version: transaction.version,
|
|
344
|
+
locktime: transaction.locktime,
|
|
345
|
+
inputs: (transaction.txInputs || transaction.ins).map((input) => ({
|
|
346
|
+
hash: buffer_1.Buffer.from(input.hash).toString('hex'),
|
|
347
|
+
index: input.index,
|
|
348
|
+
sequence: input.sequence,
|
|
349
|
+
})),
|
|
350
|
+
outputs: (transaction.txOutputs || transaction.outs).map((output) => ({
|
|
351
|
+
script: buffer_1.Buffer.from(output.script).toString('hex'),
|
|
352
|
+
value: output.value.toString(),
|
|
353
|
+
})),
|
|
354
|
+
});
|
|
355
|
+
const approvedTransaction = unsignedSnapshot(psbt);
|
|
356
|
+
const approvedFinalInputs = psbt.data.inputs.map(finalizedFields);
|
|
357
|
+
const payload = await this.executeWithRetry(async () => {
|
|
358
|
+
const response = await connect_webextension_1.default.signTransaction(utxoTransaction);
|
|
359
|
+
if (!response.success) {
|
|
360
|
+
throw new Error('Trezor sign failed: ' + response.payload.error);
|
|
361
|
+
}
|
|
362
|
+
return response.payload;
|
|
349
363
|
}, 'signUtxoTransaction');
|
|
364
|
+
const tx = bitcoinjs.Transaction.fromHex(payload.serializedTx);
|
|
365
|
+
if (unsignedSnapshot(tx) !== approvedTransaction ||
|
|
366
|
+
unsignedSnapshot(psbt) !== approvedTransaction) {
|
|
367
|
+
throw new Error('Trezor returned a different unsigned transaction');
|
|
368
|
+
}
|
|
369
|
+
// Finalized inputs belong to another signer. Neither the device response
|
|
370
|
+
// nor concurrent code may replace their approved scripts or witnesses.
|
|
371
|
+
if (approvedFinalInputs.some((approved, index) => {
|
|
372
|
+
const current = finalizedFields(psbt.data.inputs[index]);
|
|
373
|
+
if (!approved)
|
|
374
|
+
return current !== null;
|
|
375
|
+
return (!current ||
|
|
376
|
+
current.scriptSig !== approved.scriptSig ||
|
|
377
|
+
current.witness !== approved.witness ||
|
|
378
|
+
buffer_1.Buffer.from(tx.ins[index].script).toString('hex') !==
|
|
379
|
+
approved.scriptSig ||
|
|
380
|
+
serializeWitness(tx.ins[index].witness || []).toString('hex') !==
|
|
381
|
+
approved.witness);
|
|
382
|
+
})) {
|
|
383
|
+
throw new Error('Trezor changed an already-finalized input');
|
|
384
|
+
}
|
|
385
|
+
for (const i of this.range(psbt.data.inputs.length)) {
|
|
386
|
+
if (approvedFinalInputs[i])
|
|
387
|
+
continue;
|
|
388
|
+
if (tx.ins[i].witness == null || tx.ins[i].witness.length !== 2) {
|
|
389
|
+
throw new Error('Please move your funds to a Segwit address: https://wiki.trezor.io/Account');
|
|
390
|
+
}
|
|
391
|
+
const partialSig = [
|
|
392
|
+
{
|
|
393
|
+
pubkey: tx.ins[i].witness[1],
|
|
394
|
+
signature: tx.ins[i].witness[0],
|
|
395
|
+
},
|
|
396
|
+
];
|
|
397
|
+
psbt.updateInput(i, { partialSig });
|
|
398
|
+
}
|
|
399
|
+
try {
|
|
400
|
+
syscoinjs.utils.finalizePSBT(psbt);
|
|
401
|
+
}
|
|
402
|
+
catch (err) {
|
|
403
|
+
console.log(err);
|
|
404
|
+
}
|
|
405
|
+
return psbt;
|
|
350
406
|
}
|
|
351
407
|
setHdPath(coin, accountIndex, slip44) {
|
|
352
408
|
if ((0, derivation_paths_1.isEvmCoin)(coin, slip44)) {
|
|
@@ -436,20 +492,48 @@ class TrezorKeyring {
|
|
|
436
492
|
const trezortx = {};
|
|
437
493
|
trezortx.coin = coin;
|
|
438
494
|
trezortx.version = psbt.version;
|
|
495
|
+
trezortx.locktime = psbt.locktime;
|
|
439
496
|
trezortx.inputs = [];
|
|
440
497
|
trezortx.outputs = [];
|
|
441
498
|
for (let i = 0; i < psbt.txInputs.length; i++) {
|
|
442
499
|
const input = psbt.txInputs[i];
|
|
443
500
|
const inputItem = {};
|
|
444
501
|
inputItem.prev_index = input.index;
|
|
445
|
-
const hashBuf = buffer_1.Buffer.
|
|
446
|
-
? input.hash
|
|
447
|
-
: buffer_1.Buffer.from(input.hash);
|
|
502
|
+
const hashBuf = buffer_1.Buffer.from(input.hash);
|
|
448
503
|
const prevHashHex = hashBuf.reverse().toString('hex'); // 64-char hex
|
|
449
504
|
inputItem.prev_hash = prevHashHex;
|
|
450
|
-
if (input.sequence)
|
|
505
|
+
if (input.sequence !== undefined)
|
|
451
506
|
inputItem.sequence = input.sequence;
|
|
452
507
|
const dataInput = psbt.data.inputs[i];
|
|
508
|
+
if (dataInput.finalScriptSig || dataInput.finalScriptWitness) {
|
|
509
|
+
// A finalized co-signer input is supplied as public transaction data,
|
|
510
|
+
// never as a private derivation request to this device.
|
|
511
|
+
let prevout = dataInput.witnessUtxo;
|
|
512
|
+
if (dataInput.nonWitnessUtxo) {
|
|
513
|
+
const previous = bitcoinjs.Transaction.fromBuffer(buffer_1.Buffer.from(dataInput.nonWitnessUtxo));
|
|
514
|
+
const output = previous.outs[input.index];
|
|
515
|
+
if (!buffer_1.Buffer.from(previous.getHash()).equals(buffer_1.Buffer.from(input.hash)) ||
|
|
516
|
+
!output ||
|
|
517
|
+
(prevout &&
|
|
518
|
+
(!buffer_1.Buffer.from(prevout.script).equals(buffer_1.Buffer.from(output.script)) ||
|
|
519
|
+
prevout.value.toString() !== output.value.toString()))) {
|
|
520
|
+
throw new Error('Trezor external input has an invalid prevout');
|
|
521
|
+
}
|
|
522
|
+
prevout = output;
|
|
523
|
+
}
|
|
524
|
+
if (!prevout || prevout.value === undefined || !prevout.script) {
|
|
525
|
+
throw new Error('Trezor external input is missing its prevout');
|
|
526
|
+
}
|
|
527
|
+
inputItem.script_type = 'EXTERNAL';
|
|
528
|
+
inputItem.amount = prevout.value.toString();
|
|
529
|
+
inputItem.script_pubkey = buffer_1.Buffer.from(prevout.script).toString('hex');
|
|
530
|
+
if (dataInput.finalScriptSig)
|
|
531
|
+
inputItem.script_sig = buffer_1.Buffer.from(dataInput.finalScriptSig).toString('hex');
|
|
532
|
+
if (dataInput.finalScriptWitness)
|
|
533
|
+
inputItem.witness = buffer_1.Buffer.from(dataInput.finalScriptWitness).toString('hex');
|
|
534
|
+
trezortx.inputs.push(inputItem);
|
|
535
|
+
continue;
|
|
536
|
+
}
|
|
453
537
|
// Resolve derivation path for this input
|
|
454
538
|
let resolvedPath = null;
|
|
455
539
|
const tapDer = dataInput.tapBip32Derivation && dataInput.tapBip32Derivation.length > 0
|