Skip to content

Commit

Permalink
docs: update Readme (#11)
Browse files Browse the repository at this point in the history
  • Loading branch information
jinoosss authored Sep 9, 2024
1 parent ee6954b commit 6a6eda6
Show file tree
Hide file tree
Showing 2 changed files with 458 additions and 54 deletions.
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

0 comments on commit 6a6eda6

Please sign in to comment.