@swapkit/wallet-hardware 6.1.1 → 6.3.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.
- package/dist/THIRD_PARTY_LICENSES.md +4 -4
- package/dist/{chunk-jzrytcrf.js → chunk-0k1b2ddn.js} +3 -3
- package/dist/{chunk-jzrytcrf.js.map → chunk-0k1b2ddn.js.map} +2 -2
- package/dist/{chunk-jewm2ag3.js → chunk-2tzsz8f3.js} +4 -4
- package/dist/{chunk-jewm2ag3.js.map → chunk-2tzsz8f3.js.map} +1 -1
- package/dist/{chunk-yrxe491r.js → chunk-410fpx61.js} +4 -4
- package/dist/{chunk-yrxe491r.js.map → chunk-410fpx61.js.map} +1 -1
- package/dist/chunk-8mkdjmw2.js +4 -0
- package/dist/chunk-8mkdjmw2.js.map +10 -0
- package/dist/{chunk-xmvg4cds.js → chunk-96p7njae.js} +3 -3
- package/dist/{chunk-xmvg4cds.js.map → chunk-96p7njae.js.map} +2 -2
- package/dist/chunk-97nsp4z6.js +5 -0
- package/dist/chunk-97nsp4z6.js.map +10 -0
- package/dist/{chunk-nhva847d.js → chunk-9a9gn4pb.js} +3 -3
- package/dist/{chunk-5p3ttw6y.js.map → chunk-9a9gn4pb.js.map} +1 -1
- package/dist/chunk-a39rm9nv.js +4 -0
- package/dist/{chunk-gr3eswf1.js.map → chunk-a39rm9nv.js.map} +5 -5
- package/dist/chunk-c8mwf9cn.js +4 -0
- package/dist/{chunk-k3thje6a.js.map → chunk-c8mwf9cn.js.map} +1 -1
- package/dist/{chunk-ds2m83jp.js → chunk-dhhmywmb.js} +4 -4
- package/dist/{chunk-ds2m83jp.js.map → chunk-dhhmywmb.js.map} +1 -1
- package/dist/{chunk-eenx3cv6.js → chunk-dsa641rq.js} +3 -3
- package/dist/{chunk-eenx3cv6.js.map → chunk-dsa641rq.js.map} +2 -2
- package/dist/{chunk-0arpsm5f.js → chunk-grj9nvte.js} +3 -3
- package/dist/{chunk-0arpsm5f.js.map → chunk-grj9nvte.js.map} +1 -1
- package/dist/{chunk-hg71hp4m.js → chunk-napm4102.js} +3 -3
- package/dist/{chunk-hg71hp4m.js.map → chunk-napm4102.js.map} +1 -1
- package/dist/{chunk-k3thje6a.js → chunk-nb08g045.js} +3 -3
- package/dist/{chunk-nhva847d.js.map → chunk-nb08g045.js.map} +1 -1
- package/dist/chunk-npe2r2ge.js +4 -0
- package/dist/{chunk-xx7cwpzq.js.map → chunk-npe2r2ge.js.map} +1 -1
- package/dist/chunk-p9mwkgye.js +4 -0
- package/dist/{chunk-09e51wma.js.map → chunk-p9mwkgye.js.map} +14 -12
- package/dist/{chunk-wfbg89d3.js → chunk-qjp8j8e5.js} +3 -3
- package/dist/{chunk-wfbg89d3.js.map → chunk-qjp8j8e5.js.map} +1 -1
- package/dist/{chunk-xn0fnag5.js → chunk-r1fk1sx9.js} +3 -3
- package/dist/{chunk-xn0fnag5.js.map → chunk-r1fk1sx9.js.map} +1 -1
- package/dist/{chunk-1amf58aq.js → chunk-ta7bqmy3.js} +3 -3
- package/dist/{chunk-1amf58aq.js.map → chunk-ta7bqmy3.js.map} +1 -1
- package/dist/{chunk-3t17wpjg.js → chunk-tgvgr630.js} +3 -3
- package/dist/{chunk-3t17wpjg.js.map → chunk-tgvgr630.js.map} +2 -2
- package/dist/chunk-v8x9ptxs.js +4 -0
- package/dist/chunk-v8x9ptxs.js.map +10 -0
- package/dist/{chunk-dptbnkzm.js → chunk-wm89desc.js} +20 -20
- package/dist/{chunk-dptbnkzm.js.map → chunk-wm89desc.js.map} +12 -10
- package/dist/{chunk-5c7b7z2d.js → chunk-wtyhjt5e.js} +3 -3
- package/dist/{chunk-5c7b7z2d.js.map → chunk-wtyhjt5e.js.map} +1 -1
- package/dist/{chunk-tm47brht.js → chunk-xskdbz15.js} +3 -3
- package/dist/{chunk-tm47brht.js.map → chunk-xskdbz15.js.map} +2 -2
- package/dist/{chunk-8m2sn76p.js → chunk-ytjqb1sd.js} +3 -3
- package/dist/{chunk-8m2sn76p.js.map → chunk-ytjqb1sd.js.map} +1 -1
- package/dist/{chunk-3h1f3hyp.js → chunk-zbesf7sy.js} +3 -3
- package/dist/{chunk-3h1f3hyp.js.map → chunk-zbesf7sy.js.map} +1 -1
- package/dist/keepkey/index.cjs +2 -2
- package/dist/keepkey/index.cjs.map +3 -3
- package/dist/keepkey/index.js +2 -2
- package/dist/keepkey/index.js.map +3 -3
- package/dist/ledger/index.cjs +30 -30
- package/dist/ledger/index.cjs.map +35 -27
- package/dist/ledger/index.js +2 -2
- package/dist/ledger/index.js.map +11 -8
- package/dist/trezor/index.cjs +2 -2
- package/dist/trezor/index.cjs.map +7 -5
- package/dist/trezor/index.js +2 -2
- package/dist/trezor/index.js.map +3 -3
- package/dist/types/helpers/cardano.d.ts +35 -0
- package/dist/types/helpers/cardano.d.ts.map +1 -0
- package/dist/types/keepkey/index.d.ts +1 -0
- package/dist/types/keepkey/index.d.ts.map +1 -1
- package/dist/types/ledger/clients/cardano.d.ts +24 -0
- package/dist/types/ledger/clients/cardano.d.ts.map +1 -0
- package/dist/types/ledger/clients/evm.d.ts +1 -0
- package/dist/types/ledger/clients/evm.d.ts.map +1 -1
- package/dist/types/ledger/clients/stellar.d.ts +13 -0
- package/dist/types/ledger/clients/stellar.d.ts.map +1 -0
- package/dist/types/ledger/clients/ton.d.ts +13 -0
- package/dist/types/ledger/clients/ton.d.ts.map +1 -0
- package/dist/types/ledger/clients/zcash.d.ts.map +1 -1
- package/dist/types/ledger/helpers/getLedgerAddress.d.ts.map +1 -1
- package/dist/types/ledger/helpers/getLedgerClient.d.ts +8 -1
- package/dist/types/ledger/helpers/getLedgerClient.d.ts.map +1 -1
- package/dist/types/ledger/index.d.ts +3 -2
- package/dist/types/ledger/index.d.ts.map +1 -1
- package/dist/types/ledger/types.d.ts +2 -2
- package/dist/types/ledger/types.d.ts.map +1 -1
- package/dist/types/trezor/cardanoSigner.d.ts.map +1 -1
- package/dist/types/trezor/hypercoreSigner.d.ts +22 -0
- package/dist/types/trezor/hypercoreSigner.d.ts.map +1 -0
- package/dist/types/trezor/index.d.ts +3 -2
- package/dist/types/trezor/index.d.ts.map +1 -1
- package/dist/types/trezor/stellarSigner.d.ts +1 -1
- package/package.json +25 -13
- package/src/helpers/cardano.ts +112 -0
- package/src/keepkey/index.ts +14 -14
- package/src/ledger/clients/cardano.ts +204 -0
- package/src/ledger/clients/evm.ts +4 -0
- package/src/ledger/clients/stellar.ts +83 -0
- package/src/ledger/clients/ton.ts +282 -0
- package/src/ledger/clients/zcash.ts +16 -6
- package/src/ledger/helpers/getLedgerAddress.ts +16 -0
- package/src/ledger/helpers/getLedgerClient.ts +13 -0
- package/src/ledger/index.ts +102 -30
- package/src/ledger/types.ts +2 -0
- package/src/trezor/cardanoSigner.ts +24 -80
- package/src/trezor/hypercoreSigner.ts +96 -0
- package/src/trezor/index.ts +153 -75
- package/dist/chunk-09e51wma.js +0 -4
- package/dist/chunk-5p3ttw6y.js +0 -4
- package/dist/chunk-gr3eswf1.js +0 -4
- package/dist/chunk-qjq7gvyx.js +0 -4
- package/dist/chunk-qjq7gvyx.js.map +0 -10
- package/dist/chunk-xx7cwpzq.js +0 -4
package/src/trezor/index.ts
CHANGED
|
@@ -409,14 +409,25 @@ async function decodeOutputAddress(script: Uint8Array): Promise<string | undefin
|
|
|
409
409
|
return undefined;
|
|
410
410
|
}
|
|
411
411
|
|
|
412
|
+
// The signed PCZT takes the v5 header Trezor signed, so the extracted transaction matches the signatures
|
|
412
413
|
async function extractSignaturesFromSignedTx(signedTxHex: string, pczt: PCZT): Promise<PCZT> {
|
|
413
|
-
const { ZcashTransaction: ZcashTx, Script } = await import("@swapkit/utxo-signer");
|
|
414
|
+
const { ZcashTransaction: ZcashTx, Script, createPCZT } = await import("@swapkit/utxo-signer");
|
|
414
415
|
const signedTx = ZcashTx.fromHex(signedTxHex, { allowUnknownOutputs: true });
|
|
415
|
-
const signedPczt =
|
|
416
|
+
const signedPczt = createPCZT({
|
|
417
|
+
coinType: pczt.getGlobal().coinType,
|
|
418
|
+
consensusBranchId: signedTx.consensusBranchId,
|
|
419
|
+
expiryHeight: signedTx.expiryHeight,
|
|
420
|
+
lockTime: signedTx.lockTime,
|
|
421
|
+
version: signedTx.version,
|
|
422
|
+
versionGroupId: signedTx.versionGroupId,
|
|
423
|
+
});
|
|
424
|
+
for (let i = 0; i < pczt.inputsLength; i++) signedPczt.addInput(pczt.getInput(i));
|
|
425
|
+
for (let i = 0; i < pczt.outputsLength; i++) signedPczt.addOutput(pczt.getOutput(i));
|
|
416
426
|
|
|
417
427
|
for (let i = 0; i < signedTx.inputsLength; i++) {
|
|
418
428
|
const signedInput = signedTx.getInput(i);
|
|
419
|
-
|
|
429
|
+
// utxo-signer 3.2 parses the signature script into scriptSig; 3.1 put it in script.
|
|
430
|
+
const script = signedInput.scriptSig ?? signedInput.script;
|
|
420
431
|
if (script && script.length > 0) {
|
|
421
432
|
const scriptParts = Script.decode(script);
|
|
422
433
|
if (scriptParts.length >= 2) {
|
|
@@ -427,6 +438,33 @@ async function extractSignaturesFromSignedTx(signedTxHex: string, pczt: PCZT): P
|
|
|
427
438
|
return signedPczt;
|
|
428
439
|
}
|
|
429
440
|
|
|
441
|
+
// A transaction parsed from raw bytes carries no input amounts, and v5 signing commits to them
|
|
442
|
+
async function resolveZcashInputAmounts(tx: ZcashTransaction): Promise<UTXOType[]> {
|
|
443
|
+
const { hex: hexEncode } = await import("@scure/base");
|
|
444
|
+
const zcashApi = getUtxoApi(Chain.Zcash);
|
|
445
|
+
const previousTransactions = new Map<string, ReturnType<typeof zcashApi.getTransactionDetails>>();
|
|
446
|
+
|
|
447
|
+
return Promise.all(
|
|
448
|
+
Array.from({ length: tx.inputsLength }, async (_, inputIndex) => {
|
|
449
|
+
const input = tx.getInput(inputIndex);
|
|
450
|
+
const hash = hexEncode.encode(input.txid);
|
|
451
|
+
if (input.value > 0n) return { hash, index: input.index, value: Number(input.value) };
|
|
452
|
+
|
|
453
|
+
const previous = previousTransactions.get(hash) ?? zcashApi.getTransactionDetails(hash);
|
|
454
|
+
previousTransactions.set(hash, previous);
|
|
455
|
+
const output = (await previous).outputs.find(({ index }) => index === input.index);
|
|
456
|
+
if (!output || !(output.value > 0)) {
|
|
457
|
+
throw new SwapKitError({
|
|
458
|
+
errorKey: "wallet_missing_params",
|
|
459
|
+
info: { chain: Chain.Zcash, inputIndex, reason: "Unable to resolve the Zcash input amount", txid: hash },
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
return { hash, index: input.index, value: output.value };
|
|
464
|
+
}),
|
|
465
|
+
);
|
|
466
|
+
}
|
|
467
|
+
|
|
430
468
|
function buildZcashTxInputsForTrezor(
|
|
431
469
|
tx: ZcashTransaction,
|
|
432
470
|
utxoInputs: UTXOType[],
|
|
@@ -486,6 +524,35 @@ async function buildZcashTxOutputsForTrezor({
|
|
|
486
524
|
return outputs;
|
|
487
525
|
}
|
|
488
526
|
|
|
527
|
+
type ZcashTrezorSignRequest = {
|
|
528
|
+
branchId: number;
|
|
529
|
+
expiry: number;
|
|
530
|
+
inputs: { amount: string; prev_hash: string; prev_index: number }[];
|
|
531
|
+
locktime: number;
|
|
532
|
+
outputs: { address?: string; amount: string; script_type: string }[];
|
|
533
|
+
};
|
|
534
|
+
|
|
535
|
+
type ZcashTrezorHeader = { version: number; versionGroupId: number };
|
|
536
|
+
|
|
537
|
+
function describeZcashSignRequest({ inputs, outputs, ...header }: ZcashTrezorSignRequest & ZcashTrezorHeader) {
|
|
538
|
+
const sum = (amounts: { amount: string }[]) => amounts.reduce((total, { amount }) => total + BigInt(amount), 0n);
|
|
539
|
+
const inputTotal = sum(inputs);
|
|
540
|
+
const outputTotal = sum(outputs);
|
|
541
|
+
|
|
542
|
+
return {
|
|
543
|
+
...header,
|
|
544
|
+
fee: (inputTotal - outputTotal).toString(),
|
|
545
|
+
inputAmounts: inputs.map(({ amount }) => amount),
|
|
546
|
+
inputs: inputs.map(({ prev_hash, prev_index }) => `${prev_hash}:${prev_index}`),
|
|
547
|
+
inputTotal: inputTotal.toString(),
|
|
548
|
+
outputs: outputs.map(({ address, amount, script_type }) => ({
|
|
549
|
+
amount,
|
|
550
|
+
kind: script_type === "PAYTOOPRETURN" ? "op_return" : address ? "external" : "change",
|
|
551
|
+
})),
|
|
552
|
+
outputTotal: outputTotal.toString(),
|
|
553
|
+
};
|
|
554
|
+
}
|
|
555
|
+
|
|
489
556
|
async function buildUtxoOutputsForTrezor(
|
|
490
557
|
tx: Transaction,
|
|
491
558
|
network: BTCNetwork,
|
|
@@ -610,6 +677,17 @@ async function getTrezorWallet<T extends Chain>({
|
|
|
610
677
|
return { ...toolbox, address };
|
|
611
678
|
}
|
|
612
679
|
|
|
680
|
+
case Chain.Hype: {
|
|
681
|
+
const { getHyperCoreToolbox } = await import("@swapkit/toolboxes/hypercore");
|
|
682
|
+
const { getHyperCoreSigner } = await import("./hypercoreSigner");
|
|
683
|
+
|
|
684
|
+
const signer = getHyperCoreSigner({ address: providedAddress, derivationPath });
|
|
685
|
+
const address = await signer.getAddress();
|
|
686
|
+
const toolbox = getHyperCoreToolbox({ signer });
|
|
687
|
+
|
|
688
|
+
return { ...toolbox, address };
|
|
689
|
+
}
|
|
690
|
+
|
|
613
691
|
case Chain.Ripple: {
|
|
614
692
|
const { getRippleToolbox } = await import("@swapkit/toolboxes/ripple");
|
|
615
693
|
const { getRippleSigner } = await import("./rippleSigner");
|
|
@@ -657,11 +735,12 @@ async function getTrezorWallet<T extends Chain>({
|
|
|
657
735
|
case Chain.Zcash: {
|
|
658
736
|
const { getUtxoToolbox } = await import("@swapkit/toolboxes/utxo");
|
|
659
737
|
|
|
738
|
+
const coin = chain.toLowerCase();
|
|
660
739
|
const derivationPathStr = derivationPathToString(derivationPath);
|
|
661
740
|
|
|
662
741
|
const getAddress = async () => {
|
|
663
742
|
const TrezorConnect = (await import("@trezor/connect-web")).default;
|
|
664
|
-
const { success, payload } = await TrezorConnect.getAddress({ coin
|
|
743
|
+
const { success, payload } = await TrezorConnect.getAddress({ coin, path: derivationPathStr });
|
|
665
744
|
|
|
666
745
|
if (!success) {
|
|
667
746
|
throw new SwapKitError({
|
|
@@ -675,37 +754,48 @@ async function getTrezorWallet<T extends Chain>({
|
|
|
675
754
|
|
|
676
755
|
const address = providedAddress ?? (await getAddress());
|
|
677
756
|
|
|
678
|
-
|
|
757
|
+
// Always v5: v4 signing makes Connect fetch previous transactions, and it cannot parse v6 ones
|
|
758
|
+
const signWithTrezor = async (request: ZcashTrezorSignRequest, signingPath: "pczt" | "transaction") => {
|
|
679
759
|
const TrezorConnect = (await import("@trezor/connect-web")).default;
|
|
760
|
+
const { ZcashVersion, ZcashVersionGroupId } = await import("@swapkit/utxo-signer");
|
|
761
|
+
const signRequest = { ...request, version: ZcashVersion.NU5, versionGroupId: ZcashVersionGroupId.NU5 };
|
|
762
|
+
const result = await TrezorConnect.signTransaction({ ...signRequest, coin, overwintered: true } as Parameters<
|
|
763
|
+
typeof TrezorConnect.signTransaction
|
|
764
|
+
>[0]);
|
|
765
|
+
|
|
766
|
+
if (!result.success) {
|
|
767
|
+
throw new SwapKitError({
|
|
768
|
+
errorKey: "wallet_trezor_failed_to_sign_transaction",
|
|
769
|
+
info: {
|
|
770
|
+
...result.payload,
|
|
771
|
+
chain,
|
|
772
|
+
derivationPath,
|
|
773
|
+
request: describeZcashSignRequest(signRequest),
|
|
774
|
+
signingPath,
|
|
775
|
+
},
|
|
776
|
+
});
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
return result.payload.serializedTx;
|
|
780
|
+
};
|
|
781
|
+
|
|
782
|
+
const signPCZTWithSerializedTx = async (pczt: PCZT) => {
|
|
680
783
|
const { hex: hexEncode } = await import("@scure/base");
|
|
681
784
|
const address_n = hardenDerivationPath(derivationPath);
|
|
682
785
|
const global = pczt.getGlobal();
|
|
683
786
|
|
|
684
787
|
const inputs = buildPCZTInputsForTrezor(pczt, address_n, hexEncode);
|
|
685
788
|
const outputs = await buildPCZTOutputsForTrezor(pczt, address_n, address, chain);
|
|
686
|
-
const
|
|
789
|
+
const request = {
|
|
687
790
|
branchId: global.consensusBranchId,
|
|
688
|
-
coin: "zcash",
|
|
689
791
|
expiry: global.expiryHeight,
|
|
690
792
|
inputs,
|
|
691
793
|
locktime: global.lockTime,
|
|
692
|
-
outputs
|
|
693
|
-
overwintered: true,
|
|
694
|
-
version: global.txVersion,
|
|
695
|
-
versionGroupId: global.versionGroupId,
|
|
696
|
-
});
|
|
697
|
-
|
|
698
|
-
if (!result.success) {
|
|
699
|
-
throw new SwapKitError({
|
|
700
|
-
errorKey: "wallet_trezor_failed_to_sign_transaction",
|
|
701
|
-
info: { chain, error: (result.payload as { error: string; code?: string }).error },
|
|
702
|
-
});
|
|
703
|
-
}
|
|
704
|
-
|
|
705
|
-
return {
|
|
706
|
-
serializedTx: result.payload.serializedTx,
|
|
707
|
-
signedPczt: await extractSignaturesFromSignedTx(result.payload.serializedTx, pczt),
|
|
794
|
+
outputs,
|
|
708
795
|
};
|
|
796
|
+
const serializedTx = await signWithTrezor(request, "pczt");
|
|
797
|
+
|
|
798
|
+
return { serializedTx, signedPczt: await extractSignaturesFromSignedTx(serializedTx, pczt) };
|
|
709
799
|
};
|
|
710
800
|
|
|
711
801
|
const parseSignedZcashTransaction = async (signedTxHex: string) => {
|
|
@@ -714,12 +804,11 @@ async function getTrezorWallet<T extends Chain>({
|
|
|
714
804
|
};
|
|
715
805
|
|
|
716
806
|
const signZcashTransactionWithSerializedTx = async (tx: ZcashTransaction) => {
|
|
717
|
-
const TrezorConnect = (await import("@trezor/connect-web")).default;
|
|
718
807
|
const { hex: hexEncode } = await import("@scure/base");
|
|
719
|
-
const { NETWORKS
|
|
808
|
+
const { NETWORKS } = await import("@swapkit/utxo-signer");
|
|
720
809
|
const address_n = hardenDerivationPath(derivationPath);
|
|
721
810
|
|
|
722
|
-
const inputs = buildZcashTxInputsForTrezor(tx,
|
|
811
|
+
const inputs = buildZcashTxInputsForTrezor(tx, await resolveZcashInputAmounts(tx), address_n, hexEncode);
|
|
723
812
|
const outputs = await buildZcashTxOutputsForTrezor({
|
|
724
813
|
addressN: address_n,
|
|
725
814
|
chain,
|
|
@@ -728,29 +817,16 @@ async function getTrezorWallet<T extends Chain>({
|
|
|
728
817
|
tx,
|
|
729
818
|
});
|
|
730
819
|
|
|
731
|
-
const
|
|
820
|
+
const request = {
|
|
732
821
|
branchId: tx.consensusBranchId,
|
|
733
|
-
|
|
734
|
-
expiry: 0,
|
|
822
|
+
expiry: tx.expiryHeight,
|
|
735
823
|
inputs,
|
|
736
|
-
locktime:
|
|
737
|
-
outputs
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
versionGroupId: ZcashVersionGroupId.SAPLING,
|
|
741
|
-
});
|
|
742
|
-
|
|
743
|
-
if (result.success) {
|
|
744
|
-
return {
|
|
745
|
-
serializedTx: result.payload.serializedTx,
|
|
746
|
-
signedTx: await parseSignedZcashTransaction(result.payload.serializedTx),
|
|
747
|
-
};
|
|
748
|
-
}
|
|
824
|
+
locktime: tx.lockTime,
|
|
825
|
+
outputs,
|
|
826
|
+
};
|
|
827
|
+
const serializedTx = await signWithTrezor(request, "transaction");
|
|
749
828
|
|
|
750
|
-
|
|
751
|
-
errorKey: "wallet_trezor_failed_to_sign_transaction",
|
|
752
|
-
info: { chain, error: (result.payload as { error: string; code?: string }).error },
|
|
753
|
-
});
|
|
829
|
+
return { serializedTx, signedTx: await parseSignedZcashTransaction(serializedTx) };
|
|
754
830
|
};
|
|
755
831
|
|
|
756
832
|
const signer = {
|
|
@@ -1427,7 +1503,7 @@ export async function getTrezorExtendedPublicKey(
|
|
|
1427
1503
|
const { TrezorConnect } = await initTrezorConnect();
|
|
1428
1504
|
const utxoChain = chain as UTXOChain;
|
|
1429
1505
|
const resolvedDerivationPath = derivationPath ?? (NetworkDerivationPath[chain] as DerivationPathArray);
|
|
1430
|
-
const coin = chain
|
|
1506
|
+
const coin = chain.toLowerCase();
|
|
1431
1507
|
|
|
1432
1508
|
const resolvedAccountPath = getUTXOAccountPath({
|
|
1433
1509
|
accountIndex,
|
|
@@ -1531,36 +1607,37 @@ export const trezorWallet = createWallet({
|
|
|
1531
1607
|
|
|
1532
1608
|
return true;
|
|
1533
1609
|
},
|
|
1534
|
-
directSigningSupport: {
|
|
1535
|
-
[Chain.Arbitrum]: true,
|
|
1536
|
-
[Chain.Arc]: true,
|
|
1537
|
-
[Chain.Aurora]: true,
|
|
1538
|
-
[Chain.Avalanche]: true,
|
|
1539
|
-
[Chain.Base]: true,
|
|
1540
|
-
[Chain.Berachain]: true,
|
|
1541
|
-
[Chain.BinanceSmartChain]: true,
|
|
1542
|
-
[Chain.Bitcoin]: true,
|
|
1543
|
-
[Chain.BitcoinCash]: true,
|
|
1544
|
-
[Chain.Cardano]: true,
|
|
1545
|
-
[Chain.Dash]: true,
|
|
1546
|
-
[Chain.Ethereum]: true,
|
|
1547
|
-
[Chain.Gnosis]: true,
|
|
1548
|
-
[Chain.Dogecoin]: true,
|
|
1549
|
-
[Chain.Hyperevm]: true,
|
|
1550
|
-
[Chain.Litecoin]: true,
|
|
1551
|
-
[Chain.Monad]: true,
|
|
1552
|
-
[Chain.Optimism]: true,
|
|
1553
|
-
[Chain.Polygon]: true,
|
|
1554
|
-
[Chain.Ripple]: true,
|
|
1555
|
-
[Chain.Robinhood]: true,
|
|
1556
|
-
[Chain.Solana]: true,
|
|
1557
|
-
[Chain.Stellar]: true,
|
|
1558
|
-
[Chain.Tron]: true,
|
|
1559
|
-
[Chain.XLayer]: true,
|
|
1560
|
-
[Chain.Zcash]: true,
|
|
1561
|
-
},
|
|
1562
1610
|
getExtendedPublicKey: getTrezorExtendedPublicKey,
|
|
1563
1611
|
name: "connectTrezor",
|
|
1612
|
+
signingSupport: {
|
|
1613
|
+
[Chain.Arbitrum]: { direct: true, typedData: true },
|
|
1614
|
+
[Chain.Arc]: { direct: true, typedData: true },
|
|
1615
|
+
[Chain.Aurora]: { direct: true, typedData: true },
|
|
1616
|
+
[Chain.Avalanche]: { direct: true, typedData: true },
|
|
1617
|
+
[Chain.Base]: { direct: true, typedData: true },
|
|
1618
|
+
[Chain.Berachain]: { direct: true, typedData: true },
|
|
1619
|
+
[Chain.BinanceSmartChain]: { direct: true, typedData: true },
|
|
1620
|
+
[Chain.Bitcoin]: { direct: true },
|
|
1621
|
+
[Chain.BitcoinCash]: { direct: true },
|
|
1622
|
+
[Chain.Cardano]: { direct: true },
|
|
1623
|
+
[Chain.Dash]: { direct: true },
|
|
1624
|
+
[Chain.Ethereum]: { direct: true, typedData: true },
|
|
1625
|
+
[Chain.Gnosis]: { direct: true, typedData: true },
|
|
1626
|
+
[Chain.Dogecoin]: { direct: true },
|
|
1627
|
+
[Chain.Hype]: { direct: true },
|
|
1628
|
+
[Chain.Hyperevm]: { direct: true, typedData: true },
|
|
1629
|
+
[Chain.Litecoin]: { direct: true },
|
|
1630
|
+
[Chain.Monad]: { direct: true, typedData: true },
|
|
1631
|
+
[Chain.Optimism]: { direct: true, typedData: true },
|
|
1632
|
+
[Chain.Polygon]: { direct: true, typedData: true },
|
|
1633
|
+
[Chain.Ripple]: { direct: true },
|
|
1634
|
+
[Chain.Robinhood]: { direct: true, typedData: true },
|
|
1635
|
+
[Chain.Solana]: { direct: true },
|
|
1636
|
+
[Chain.Stellar]: { direct: true },
|
|
1637
|
+
[Chain.Tron]: { direct: true },
|
|
1638
|
+
[Chain.XLayer]: { direct: true, typedData: true },
|
|
1639
|
+
[Chain.Zcash]: { direct: true },
|
|
1640
|
+
},
|
|
1564
1641
|
supportedChains: [
|
|
1565
1642
|
Chain.Arbitrum,
|
|
1566
1643
|
Chain.Arc,
|
|
@@ -1576,6 +1653,7 @@ export const trezorWallet = createWallet({
|
|
|
1576
1653
|
Chain.Dogecoin,
|
|
1577
1654
|
Chain.Ethereum,
|
|
1578
1655
|
Chain.Gnosis,
|
|
1656
|
+
Chain.Hype,
|
|
1579
1657
|
Chain.Hyperevm,
|
|
1580
1658
|
Chain.Litecoin,
|
|
1581
1659
|
Chain.Monad,
|