@@ -13,15 +13,15 @@ export interface LocalStorageConnectorParameters {
1313 * A connector that uses the local storage to store seed for a deterministic wallet generation
1414 */
1515export function localStorageConnector ( parameters : LocalStorageConnectorParameters = { } ) : CreateConnectorFn {
16- return createConnector ( ( config ) => {
16+ return createConnector ( ( ( config ) => {
1717 let currentWallet : any = null
1818
1919 return {
2020 id : parameters . id || 'localStorageConnector' ,
2121 name : parameters . name || 'localStorage' ,
2222 type : parameters . id || 'localStorageConnector' ,
2323
24- async connect ( ) {
24+ connect : ( async ( { withCapabilities = false } : { withCapabilities ?: boolean } = { } ) => {
2525 try {
2626 const provider = createPublicClient ( {
2727 chain : mainnet ,
@@ -44,14 +44,25 @@ export function localStorageConnector(parameters: LocalStorageConnectorParameter
4444
4545 currentWallet = wallet
4646
47+ const accounts = withCapabilities
48+ ? [ { address : account as Address , capabilities : { } } ]
49+ : [ account as Address ]
50+
4751 return {
48- accounts : [ account as Address ] ,
52+ accounts,
4953 chainId : mainnet . id ,
5054 }
5155 } catch ( error ) {
5256 throw new UserRejectedRequestError ( error as Error )
5357 }
54- } ,
58+ } ) as < withCapabilities extends boolean = false > (
59+ args ?: { withCapabilities ?: withCapabilities }
60+ ) => Promise < {
61+ accounts : withCapabilities extends true
62+ ? readonly { address : Address ; capabilities : Record < string , unknown > } [ ]
63+ : readonly Address [ ]
64+ chainId : number
65+ } > ,
5566
5667 async disconnect ( ) {
5768 await localStorageWallet . deleteWallet ( )
@@ -117,5 +128,5 @@ export function localStorageConnector(parameters: LocalStorageConnectorParameter
117128 onDisconnect ( ) { } ,
118129 onMessage ( ) { } ,
119130 }
120- } )
131+ } ) as unknown as CreateConnectorFn )
121132}
0 commit comments