https://github.com/zeriontech/hardware-wallet-connection
https://github.com/zeriontech/hardware-wallet-connection
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/zeriontech/hardware-wallet-connection
- Owner: zeriontech
- Created: 2023-09-25T15:19:17.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-01-08T15:52:35.000Z (over 2 years ago)
- Last Synced: 2025-02-22T20:32:27.903Z (over 1 year ago)
- Language: TypeScript
- Size: 591 KB
- Stars: 0
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# hardware-wallet-connection
The `hardware-wallet-connection` module is a JavaScript library that provides methods for interacting with a Ledger hardware wallet. You can use it to connect to a Ledger device, check its status, retrieve addresses and sign transactions.
## Installation
You can install `hardware-wallet-connection` via npm or yarn:
```bash
npm install hardware-wallet-connection
# OR
yarn add hardware-wallet-connection
```
## Usage
### Importing the Module
To use the `hardware-wallet-connection` module, import the required methods as follows:
```javascript
import {
connectDevice,
checkDevice,
interpretError,
deniedByUser,
getAddressByDerivationPath,
getAddresses,
supportsLedger,
signTransaction,
serializeTransaction,
} from "hardware-wallet-connection";
```
### Methods
#### `connectDevice()`
Use this method to establish a connection with a Ledger hardware wallet.
For first-time connection, browser will show a Permission Window
```javascript
const device = await connectDevice();
```
#### `checkDevice()`
Check the status of the connected Ledger device.
This function checks if the device is connected without ever displaying device permission window. This check may be safely performed in background.
```javascript
const deviceStatus = await checkDevice();
```
#### `interpretError(error: LedgerError)`
Interpret Ledger error codes to provide more user-friendly error messages.
```javascript
const errorMessage = interpretError(error);
```
#### `deniedByUser(error: LedgerError)`
Check if the user denied a Ledger action.
```javascript
const isDenied = deniedByUser(error);
```
#### `getAddressByDerivationPath(appEth: AppEth, { derivationPath }: { derivationPath: string })`
Retrieve an address from the Ledger device using a specified derivation path.
```javascript
// retrieved address for index: 1
const address = await getAddressByDerivationPath(appEth, {
derivationPath: "44'/60'/1'/0/0",
});
```
#### `getAddresses(appEth: AppEth, { type, from, count }: { type: PathType; from: number; count: number })`
Retrieve multiple addresses from the Ledger device using an array of derivation paths.
```javascript
const addresses = getAddresses(appEth: AppEth, { type: 'ledgerLive', from: 0, count: 5 });
```
#### `supportsLedger()`
Check if the current environment supports Ledger hardware wallets.
```javascript
const isSupported = supportsLedger();
```
#### `signTransaction(derivationPath: string, transaction: IncomingTransaction)`
Sign a transaction using the Ledger device.
```javascript
const signedTransaction = signTransaction("44'/60'/1'/0/0", transaction);
```
#### `serializeTransaction(transaction: IncomingTransaction)`
Serialize a transaction for Ledger signing.
```javascript
const serializedTransaction = serializeTransaction(transaction);
```
#### `personalSign(derivationPath: string, message: string)`
Sign a message using the Ledger device.
```javascript
const signature = personalSign("44'/60'/1'/0/0", message);
```
#### `signTypedData_v4(derivationPath: string, typedData: string | TypedData)`
Sign a typed EIP-712 message using the Ledger device.
```javascript
const signature = signTypedData_v4("44'/60'/1'/0/0", typedData);
```
## Author
everdimension
---
**Disclaimer**: This module is not affiliated with or endorsed by Ledger SAS. Use it at your own risk.