Skip to content

Commit 250aff5

Browse files
feat(wrapped-keys): LIT-3995 - Add sign transaction capability to batchGeneratePrivateKeys api
1 parent 31d3cea commit 250aff5

File tree

3 files changed

+33
-6
lines changed

3 files changed

+33
-6
lines changed

packages/wrapped-keys/src/lib/api/batch-generate-private-keys.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,16 @@ export async function batchGeneratePrivateKeys(
6262
} = actionResult;
6363
const id = ids[ndx]; // Result of writes is in same order as provided
6464

65-
const signature = actionResult.signMessage?.signature;
65+
const messageSignature = actionResult.signMessage?.signature;
66+
const transactionSignature = actionResult.signTransaction?.signature;
6667

6768
return {
68-
...(signature ? { signMessage: { signature } } : {}),
69+
...(messageSignature
70+
? { signMessage: { signature: messageSignature } }
71+
: {}),
72+
...(transactionSignature
73+
? { signTransaction: { signature: transactionSignature } }
74+
: {}),
6975
generateEncryptedPrivateKey: {
7076
memo: memo,
7177
id,

packages/wrapped-keys/src/lib/lit-actions-client/batch-generate-keys.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ interface GeneratePrivateKeyLitActionResult {
2121
interface BatchGeneratePrivateKeysWithLitActionResult {
2222
network: Network;
2323
signMessage?: { signature: string };
24+
signTransaction?: { signature: string };
2425
generateEncryptedPrivateKey: GeneratePrivateKeyLitActionResult;
2526
}
2627

packages/wrapped-keys/src/lib/types.ts

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,14 +159,33 @@ export interface ExportPrivateKeyResult {
159159
id: string;
160160
}
161161

162-
/** @typedef GeneratePrivateKeyAction
163-
* @extends ApiParamsSupportedNetworks
164-
*/
165-
export type GeneratePrivateKeyAction = ApiParamsSupportedNetworks & {
162+
export type GeneratePrivateKeyActionBase = ApiParamsSupportedNetworks & {
166163
generateKeyParams: { memo: string };
167164
signMessageParams?: { messageToSign: string | Uint8Array };
168165
};
169166

167+
export type GeneratePrivateKeyActionSolana = GeneratePrivateKeyActionBase & {
168+
network: Extract<Network, 'solana'>;
169+
signTransactionParams: {
170+
unsignedTransaction: SerializedTransaction;
171+
broadcast?: boolean;
172+
};
173+
};
174+
175+
export type GeneratePrivateKeyActionEthereum = GeneratePrivateKeyActionBase & {
176+
network: Extract<Network, 'evm'>;
177+
signTransactionParams: {
178+
unsignedTransaction: EthereumLitTransaction;
179+
broadcast?: boolean;
180+
};
181+
};
182+
183+
/** @typedef GeneratePrivateKeyAction
184+
*/
185+
export type GeneratePrivateKeyAction =
186+
| GeneratePrivateKeyActionSolana
187+
| GeneratePrivateKeyActionEthereum;
188+
170189
/** @typedef BatchGeneratePrivateKeysParams
171190
* @extends BaseApiParams
172191
*/
@@ -180,6 +199,7 @@ export type BatchGeneratePrivateKeysParams = BaseApiParams & {
180199
export interface BatchGeneratePrivateKeysActionResult {
181200
generateEncryptedPrivateKey: GeneratePrivateKeyResult & { memo: string };
182201
signMessage?: { signature: string };
202+
signTransaction?: { signature: string };
183203
}
184204

185205
export interface BatchGeneratePrivateKeysResult {

0 commit comments

Comments
 (0)