Skip to content

Commit 3f5a3a6

Browse files
authored
Upgrade ledger libraries (#272)
1 parent 66ab17b commit 3f5a3a6

File tree

16 files changed

+711
-657
lines changed

16 files changed

+711
-657
lines changed

main/api/ledger/index.ts

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ import { z } from "zod";
55

66
import { handleAggregateSignatureShares } from "./multisig/handleAggregateSignatureShares";
77
import { handleCreateSigningPackage } from "./multisig/handleCreateSigningPackage";
8-
import { ledgerDkg } from "./utils/dkg";
8+
import { mapLedgerError } from "./utils/ledger";
99
import { ledgerManager, ConnectionStatus } from "./utils/ledgerManager";
10+
import { ledgerMultiSigner } from "./utils/ledgerMultiSigner";
1011
import { handleSendTransactionInput } from "../transactions/handleSendTransaction";
1112
import { t } from "../trpc";
1213

@@ -44,33 +45,43 @@ export const ledgerRouter = t.router({
4445
return ledgerManager.markAccountAsLedger(opts.input.publicAddress);
4546
}),
4647
createSigningCommitment: t.procedure
47-
.input(z.object({ txHash: z.string(), identities: z.array(z.string()) }))
48+
.input(
49+
z.object({
50+
unsignedTransaction: z.string(),
51+
identities: z.array(z.string()),
52+
}),
53+
)
4854
.mutation(async (opts) => {
49-
const rawCommitments = await ledgerDkg.dkgGetCommitments(
50-
opts.input.txHash,
55+
const transaction = new UnsignedTransaction(
56+
Buffer.from(opts.input.unsignedTransaction, "hex"),
5157
);
58+
const rawCommitments = await ledgerMultiSigner
59+
.dkgGetCommitments(transaction)
60+
.catch((e) => mapLedgerError(e, ledgerMultiSigner));
5261

5362
const signingCommitment = multisig.SigningCommitment.fromRaw(
5463
opts.input.identities[0],
5564
rawCommitments,
56-
Buffer.from(opts.input.txHash, "hex"),
65+
transaction.hash(),
5766
opts.input.identities,
5867
);
5968

6069
return signingCommitment.serialize().toString("hex");
6170
}),
6271
getLedgerIdentity: t.procedure.input(z.undefined()).mutation(async () => {
63-
const identity = await ledgerDkg.dkgGetIdentity(0);
72+
const identity = await ledgerMultiSigner
73+
.dkgGetIdentity(0)
74+
.catch((e) => mapLedgerError(e, ledgerMultiSigner));
75+
6476
return identity.toString("hex");
6577
}),
6678
reviewTransaction: t.procedure
6779
.input(z.object({ unsignedTransaction: z.string() }))
6880
.mutation(async (opts) => {
69-
console.log("reviewTransaction");
70-
const result = await ledgerDkg.reviewTransaction(
71-
opts.input.unsignedTransaction,
72-
);
73-
console.log("reviewTransactionComplete");
81+
const result = await ledgerMultiSigner
82+
.reviewTransaction(opts.input.unsignedTransaction)
83+
.catch((e) => mapLedgerError(e, ledgerMultiSigner));
84+
7485
return result.toString("hex");
7586
}),
7687
createSignatureShare: t.procedure
@@ -85,22 +96,16 @@ export const ledgerRouter = t.router({
8596
const unsignedTransaction = new UnsignedTransaction(
8697
Buffer.from(opts.input.unsignedTransaction, "hex"),
8798
);
88-
const ref = unsignedTransaction.takeReference();
89-
const publicKeyRandomness = ref.publicKeyRandomness();
90-
const hash = ref.hash();
91-
unsignedTransaction.returnReference();
9299

93100
const frostSigningPackage = new multisig.SigningPackage(
94101
Buffer.from(opts.input.signingPackage, "hex"),
95102
)
96103
.frostSigningPackage()
97104
.toString("hex");
98105

99-
const frostSignatureShare = await ledgerDkg.dkgSign(
100-
publicKeyRandomness,
101-
frostSigningPackage,
102-
hash.toString("hex"),
103-
);
106+
const frostSignatureShare = await ledgerMultiSigner
107+
.dkgSign(unsignedTransaction, frostSigningPackage)
108+
.catch((e) => mapLedgerError(e, ledgerMultiSigner));
104109

105110
return multisig.SignatureShare.fromFrost(
106111
frostSignatureShare,

main/api/ledger/utils/dkg.ts

Lines changed: 0 additions & 166 deletions
This file was deleted.

0 commit comments

Comments
 (0)