@@ -88,6 +88,25 @@ export type WalletMiddlewareParams = MiddlewareParams<
8888 WalletMiddlewareContext
8989> ;
9090
91+ /**
92+ * Creates a JSON-RPC middleware that handles "wallet"-related JSON-RPC methods.
93+ * "Wallet" may have had a specific meaning at some point in the distant past,
94+ * but at this point it's just an arbitrary label.
95+ *
96+ * @param options - The options for the middleware.
97+ * @param options.getAccounts - The function to get the accounts for the origin.
98+ * @param options.processDecryptMessage - The function to process the decrypt message request.
99+ * @param options.processEncryptionPublicKey - The function to process the encryption public key request.
100+ * @param options.processPersonalMessage - The function to process the personal message request.
101+ * @param options.processTransaction - The function to process the transaction request.
102+ * @param options.processSignTransaction - The function to process the sign transaction request.
103+ * @param options.processTypedMessage - The function to process the typed message request.
104+ * @param options.processTypedMessageV3 - The function to process the typed message v3 request.
105+ * @param options.processTypedMessageV4 - The function to process the typed message v4 request.
106+ * @param options.processRequestExecutionPermissions - The function to process the request execution permissions request.
107+ * @param options.processRevokeExecutionPermission - The function to process the revoke execution permission request.
108+ * @returns A JSON-RPC middleware that handles wallet-related JSON-RPC methods.
109+ */
91110export function createWalletMiddleware ( {
92111 getAccounts,
93112 processDecryptMessage,
@@ -142,12 +161,26 @@ export function createWalletMiddleware({
142161 // account lookups
143162 //
144163
164+ /**
165+ * Gets the accounts for the origin.
166+ *
167+ * @param options - Options bag.
168+ * @param options.context - The context of the request.
169+ * @returns The accounts for the origin.
170+ */
145171 async function lookupAccounts ( {
146172 context,
147173 } : WalletMiddlewareParams ) : Promise < Json > {
148174 return await getAccounts ( context . assertGet ( 'origin' ) ) ;
149175 }
150176
177+ /**
178+ * Gets the default account (i.e. first in the list) for the origin.
179+ *
180+ * @param options - Options bag.
181+ * @param options.context - The context of the request.
182+ * @returns The default account for the origin.
183+ */
151184 async function lookupDefaultAccount ( {
152185 context,
153186 } : WalletMiddlewareParams ) : Promise < Json > {
@@ -159,6 +192,14 @@ export function createWalletMiddleware({
159192 // transaction signatures
160193 //
161194
195+ /**
196+ * Sends a transaction.
197+ *
198+ * @param options - Options bag.
199+ * @param options.request - The request.
200+ * @param options.context - The context of the request.
201+ * @returns The transaction hash.
202+ */
162203 async function sendTransaction ( {
163204 request,
164205 context,
@@ -182,6 +223,14 @@ export function createWalletMiddleware({
182223 return await processTransaction ( txParams , request ) ;
183224 }
184225
226+ /**
227+ * Signs a transaction.
228+ *
229+ * @param options - Options bag.
230+ * @param options.request - The request.
231+ * @param options.context - The context of the request.
232+ * @returns The signed transaction.
233+ */
185234 async function signTransaction ( {
186235 request,
187236 context,
@@ -209,6 +258,14 @@ export function createWalletMiddleware({
209258 // message signatures
210259 //
211260
261+ /**
262+ * Signs a `eth_signTypedData` message.
263+ *
264+ * @param options - Options bag.
265+ * @param options.request - The request.
266+ * @param options.context - The context of the request.
267+ * @returns The signed message.
268+ */
212269 async function signTypedData ( {
213270 request,
214271 context,
@@ -244,6 +301,14 @@ export function createWalletMiddleware({
244301 return await processTypedMessage ( msgParams , request , version ) ;
245302 }
246303
304+ /**
305+ * Signs a `eth_signTypedData_v3` message.
306+ *
307+ * @param options - Options bag.
308+ * @param options.request - The request.
309+ * @param options.context - The context of the request.
310+ * @returns The signed message.
311+ */
247312 async function signTypedDataV3 ( {
248313 request,
249314 context,
@@ -276,6 +341,14 @@ export function createWalletMiddleware({
276341 return await processTypedMessageV3 ( msgParams , request , version ) ;
277342 }
278343
344+ /**
345+ * Signs a `eth_signTypedData_v4` message.
346+ *
347+ * @param options - Options bag.
348+ * @param options.request - The request.
349+ * @param options.context - The context of the request.
350+ * @returns The signed message.
351+ */
279352 async function signTypedDataV4 ( {
280353 request,
281354 context,
@@ -308,6 +381,14 @@ export function createWalletMiddleware({
308381 return await processTypedMessageV4 ( msgParams , request , version ) ;
309382 }
310383
384+ /**
385+ * Signs a `personal_sign` message.
386+ *
387+ * @param options - Options bag.
388+ * @param options.request - The request.
389+ * @param options.context - The context of the request.
390+ * @returns The signed message.
391+ */
311392 async function personalSign ( {
312393 request,
313394 context,
@@ -358,6 +439,13 @@ export function createWalletMiddleware({
358439 return await processPersonalMessage ( msgParams , request ) ;
359440 }
360441
442+ /**
443+ * Recovers the signer address from a `personal_sign` message.
444+ *
445+ * @param options - Options bag.
446+ * @param options.request - The request.
447+ * @returns The recovered signer address.
448+ */
361449 async function personalRecover ( {
362450 request,
363451 } : WalletMiddlewareParams ) : Promise < Json > {
@@ -380,6 +468,14 @@ export function createWalletMiddleware({
380468 return signerAddress ;
381469 }
382470
471+ /**
472+ * Gets the encryption public key for an address.
473+ *
474+ * @param options - Options bag.
475+ * @param options.request - The request.
476+ * @param options.context - The context of the request.
477+ * @returns The encryption public key.
478+ */
383479 async function encryptionPublicKey ( {
384480 request,
385481 context,
@@ -402,6 +498,14 @@ export function createWalletMiddleware({
402498 return await processEncryptionPublicKey ( address , request ) ;
403499 }
404500
501+ /**
502+ * Decrypts a message.
503+ *
504+ * @param options - Options bag.
505+ * @param options.request - The request.
506+ * @param options.context - The context of the request.
507+ * @returns The decrypted message.
508+ */
405509 async function decryptMessage ( {
406510 request,
407511 context,
0 commit comments