feat(wallet): Refactor wallet service for enhanced modularity and clarity
- Abstracted RPC interface to allow dynamic input for connection flexibility. - Added `signSession` function to retrieve `authSig` efficiently. - Improved logging and error handling to provide clearer feedback. - Centralized `authSig` retrieval for better code maintainability. This refactor ensures the wallet service is more adaptable to varying use cases and improves overall code readability.
This commit is contained in:
36
src/lib/services/wallet/README.md
Normal file
36
src/lib/services/wallet/README.md
Normal file
@ -0,0 +1,36 @@
|
||||
# `wallet.ts` Service Documentation
|
||||
|
||||
The `wallet.ts` service provides utilities for working with the PKPEthersWallet, including connecting and retrieving the authentication signature.
|
||||
|
||||
## Dependencies
|
||||
|
||||
- `getStoredAuthSig` from `'$lib/services/authWithMetamask/authWithMetamask'`
|
||||
- `PKPEthersWallet` from `'@lit-protocol/pkp-ethers'`
|
||||
- `createMessage` from `'$lib/services/messages'`
|
||||
|
||||
## Variables
|
||||
|
||||
- **isWalletConnected**: A boolean flag that keeps track of whether the wallet is currently connected or not.
|
||||
|
||||
## Functions
|
||||
|
||||
### `connectWallet(pkpPubKey: string, rpcURL: string = 'https://rpc.gnosischain.com/')`
|
||||
|
||||
#### Parameters:
|
||||
- **pkpPubKey**: The public key used to connect to the wallet.
|
||||
- **rpcURL** (Optional): The RPC URL for the connection. Defaults to `'https://rpc.gnosischain.com/'`.
|
||||
|
||||
#### Returns:
|
||||
- A promise which resolves to an instance of `PKPEthersWallet` if the wallet is successfully connected. If the wallet is already connected or there's an error in getting the `authSig`, it returns `null`.
|
||||
|
||||
#### Description:
|
||||
This function first checks if the wallet is already connected. If it's not, it attempts to retrieve the `authSig` from local storage. If successful, it connects to the wallet using the provided `pkpPubKey` and `rpcURL`. Once the wallet is successfully connected, it sends a success message and sets the `isWalletConnected` flag to `true`.
|
||||
|
||||
### `signSession()`
|
||||
|
||||
#### Returns:
|
||||
- The `authSig` from local storage if it exists, or `null` otherwise.
|
||||
|
||||
#### Description:
|
||||
This function retrieves the `authSig` from local storage and returns it. If the `authSig` does not exist in local storage, an error message is sent, and the function returns `null`.
|
||||
|
Reference in New Issue
Block a user