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

docs: update Readme #11

Merged
merged 1 commit into from
Sep 9, 2024
Merged
Show file tree
Hide file tree
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
256 changes: 229 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,242 @@
# Adena Wallet SDK

## Adena Wallet SDK allows dapps to connect to Adena Wallet
The Adena Wallet SDK is a TypeScript-based library designed to interact with the Adena Wallet and TM2 Wallet.

1. Adena Wallet
- [Docs](https://docs.adena.app)
- [Extension](https://www.adena.app/)
This SDK provides various functionalities, including wallet connection, network switching, transaction signing, and more.

### Installing Adena Wallet SDK
## Adena Wallet

1. Check available versions:
- [Docs](https://docs.adena.app)
- [Extension](https://www.adena.app/)

```shell
# yarn
yarn info @adena-wallet/sdk versions
## Installation

# npm
npm view @adena-wallet/sdk versions
```
Install the SDK via npm:

2. Install latest version:
```
npm install @adena-wallet/sdk
```

Or via yarn:

```
yarn add @adena-wallet/sdk
```

## Basic Usage

Here is a basic example of how to use the SDK:

```
import { AdenaSDK, WalletProvider } from '@adena-wallet/sdk';

const walletProvider = new WalletProvider();
const adenaSDK = new AdenaSDK(walletProvider);

// Connect to the wallet
adenaSDK.connectWallet().then(() => {
console.log('Wallet connected');
});

// Retrieves account information
adenaSDK.getAccount().then((account) => {
console.log('Account:', account);
});
```

## SDK Functions

### `connectWallet`

Connects the SDK to the wallet.

**Example:**

```
adenaSDK.connectWallet().then(() => {
console.log('Wallet connected');
});
```

### `disconnectWallet`

Disconnects the SDK from the wallet.

**Example:**

```
adenaSDK.disconnectWallet();
```

### `getConnectionState`

Retrieves the current connection state of the wallet.

**Example:**

```
const state = adenaSDK.getConnectionState();
console.log('Connection state:', state);
```

### `onConnectionChange`

Sets up a listener for connection state changes.

**Example:**

```
adenaSDK.onConnectionChange({
callback: (event) => {
console.log('Connection event:', event);
},
});
```

### `offConnectionChange`

Removes a previously set connection state change listener.

**Example:**

```
const listener = (event) => {
console.log('Connection event:', event);
};

adenaSDK.onConnectionChange({ callback: listener });

// Later, remove the listener
adenaSDK.offConnectionChange({ callback: listener });
```

### `isConnected`

Checks if the wallet is currently connected.

**Example:**

```
adenaSDK.isConnected().then((response) => {
console.log('Is connected:', response.status);
});
```

### `getAccount`

Retrieves account information from the connected wallet.

**Example:**

```
adenaSDK.getAccount().then((account) => {
console.log('Account:', account);
});
```

### `switchNetwork`

Switches the wallet to a different network.

**Example:**

```
adenaSDK.switchNetwork({ chainId: 'new-chain-id' }).then(() => {
console.log('Network switched');
});
```

### `addNetwork`

Adds a new network to the wallet.

**Example:**

```
adenaSDK.addNetwork({
chainId: 'new-chain-id',
chainName: 'New Network',
rpcUrl: 'New Chain RPC URL',
}).then(() => {
console.log('Network added');
});
```

### `signTransaction`

Signs a transaction with the connected wallet.

**Example:**

```
const tx = {
/** specific message types */
messages: Any[];
/** transaction costs (fee) */
fee?: TxFee;
/** the signatures for the transaction */
signatures: TxSignature[];
/** memo attached to the transaction */
memo: string;
};

adenaSDK.signTransaction({ tx }).then((response) => {
console.log('Signed transaction:', response.encodedTransaction);
});
```

### `broadcastTransaction`

```shell
# yarn
yarn add @adena-wallet/sdk
Broadcasts a signed transaction to the network.

# npm
npm install @adena-wallet/sdk
```
**Example:**

3. Check installed version:
```
const tx = {
/** specific message types */
messages: Any[];
/** transaction costs (fee) */
fee?: TxFee;
/** the signatures for the transaction */
signatures: TxSignature[];
/** memo attached to the transaction */
memo: string;
};

adenaSDK.broadcastTransaction({ tx }).then((response) => {
console.log('Broadcast response:', response);
});
```

```shell
# yarn
yarn list @adena-wallet/sdk
### `onChangeAccount`

# npm
npm list @adena-wallet/sdk
```
Sets up a listener for account changes.

### Development Setup
**Example:**

```
adenaSDK.onChangeAccount({
callback: (account) => {
console.log('Account changed:', account);
},
});
```

### `onChangeNetwork`

Sets up a listener for network changes.

**Example:**

```
adenaSDK.onChangeNetwork({
callback: (network) => {
console.log('Network changed:', network);
},
});
```

## Development Setup

The Node.js version is 18.14.2.
We recommend using [nvm](https://github.com/nvm-sh/nvm).
Expand All @@ -49,3 +247,7 @@ We recommend using [nvm](https://github.com/nvm-sh/nvm).

$ nvm use
```

## License

This project is licensed under the MIT License.
Loading