Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

created a custom-connector folder > custom-connector.md documentation #70

Closed
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 90 additions & 0 deletions docs/recipes/custom-connector.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
## Introduction

Custom wallet connectors allow users to connect their preferred wallets to your decentralized application (dApp). This provides flexibility and improves the user experience by giving users options beyond popular default wallets like MetaMask.


## Install Dependencies
First, install the necessary packages:

```
npm install @scaffold-stark/stark-burner
```
OR

```
yarn add @scaffold-stark/stark-burner
```
Comment on lines +7 to +16
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant breaking down the burner wallet as an example connector ser. not installing it, this would defeat the purpose of the documentation


## Handle Errors
Implement proper error handling throughout the connector:
```
handleError(error) {
console.error('Error in StarknetCustomConnector:', error);
// Implement appropriate error handling logic
}
```

## Integrate with User Interface
Create a React component to integrate the custom connector with the user interface:

```
import React, { useState } from 'react';
import { BurnerConnector } from '@scaffold-stark/stark-burner';
const WalletConnect = () => {
const [connected, setConnected] = useState(false);
const [address, setAddress] = useState('');
handleError(error) {
console.error('Error in StarknetCustomConnector:', error);
// Implement appropriate error handling logic
}
const connectWallet = async () => {
try {
const result = await BurnerConnector.connect();
setConnected(true);
setAddress(result.address);
} catch (error) {
handleError(error);
}
};
const disconnectWallet = async () => {
await BurnerConnector.disconnect();
setConnected(false);
setAddress('');
};
return (
<div>
{!connected ? (
<button onClick={connectWallet}>Connect Wallet</button>
) : (
<div>
<p>Connected Address: {address}</p>
<button onClick={disconnectWallet}>Disconnect</button>
</div>
)}
</div>
);
};
export default WalletConnect;
```

## Summary
This custom Starknet wallet connector provides a flexible and extensible solution for connecting various wallets to a dApp built on the Starknet blockchain. It includes:

- Support for injected wallets and web wallets
- Error handling for robust connectivity
- Customizable connector options
- Integration with React components for user interaction

Best practices followed include:
- Modular design allowing for easy extension
- Proper error handling and logging
- Separation of concerns between connector logic and UI
- Flexibility to support multiple wallet types


Loading