Documentation Index
Fetch the complete documentation index at: https://docs.qu.ai/llms.txt
Use this file to discover all available pages before exploring further.
The Quai HD wallet is a BIP44-compliant hierarchical deterministic wallet used for managing a set of addresses in the
Quai ledger. This is the easiest way to manage the interaction of managing accounts and addresses on the Quai
network, however, if your use case requires a single address Quai address, you can use the Wallet class.
The Quai HD wallet supports:
- Adding accounts to the wallet heierchy
- Generating addresses for a specific account in any Zone
- Signing and sending transactions for any address in the wallet
- Signing and verifying EIP1193 typed data for any address in the wallet.
- Serializing the wallet to JSON and deserializing it back to a wallet instance.
Example
import { QuaiHDWallet, Zone } from 'quais';
const wallet = new QuaiHDWallet();
const cyrpus1Address = await wallet.getNextAddress(0, Zone.Cyrpus1); // get the first address in the Cyrpus1 zone
await wallet.sendTransaction({ from: address, to: '0x...', value: 100 }); // send a transaction
const serializedWallet = wallet.serialize(); // serialize current (account/address) state of the wallet
.
.
.
const deserializedWallet = QuaiHDWallet.deserialize(serializedWallet); // create a new wallet instance from the serialized data
Extends
Constructors
new QuaiHDWallet()
new QuaiHDWallet(
guard,
root,
provider?): QuaiHDWallet
Create a QuaiHDWallet instance.
Parameters
| Parameter | Type | Description |
|---|
guard | any | - |
root | HDNodeWallet | The root HD node wallet. |
provider? | Provider | The provider. |
Returns
QuaiHDWallet
Overrides
AbstractHDWallet<NeuteredAddressInfo>.constructor
Source
wallet/quai-hdwallet.ts:69
Methods
addAddress()
addAddress(account, addressIndex): NeuteredAddressInfo
Adds an address to the wallet.
Parameters
| Parameter | Type | Description |
|---|
account | number | The account number. |
addressIndex | number | The address index. |
Returns
NeuteredAddressInfo
The added address info.
Overrides
AbstractHDWallet.addAddress
Source
wallet/quai-hdwallet.ts:228
connect()
Connects the wallet to a provider.
Parameters
| Parameter | Type | Description |
|---|
provider | Provider | The provider. |
Returns
void
Inherited from
AbstractHDWallet.connect
Source
wallet/abstract-hdwallet.ts:240
getAddressInfo()
getAddressInfo(address): null | NeuteredAddressInfo
Gets the address info for a given address.
Parameters
| Parameter | Type | Description |
|---|
address | string | The address. |
Returns
null | NeuteredAddressInfo
The address info or null if not found.
Overrides
AbstractHDWallet.getAddressInfo
Source
wallet/quai-hdwallet.ts:350
getAddressesForAccount()
getAddressesForAccount(account): NeuteredAddressInfo[]
Gets the addresses for a given account.
Parameters
| Parameter | Type | Description |
|---|
account | number | The account number. |
Returns
NeuteredAddressInfo[]
The addresses for the account.
Overrides
AbstractHDWallet.getAddressesForAccount
Source
wallet/quai-hdwallet.ts:409
getAddressesForZone()
getAddressesForZone(zone): NeuteredAddressInfo[]
Gets the addresses for a given zone.
Parameters
| Parameter | Type | Description |
|---|
zone | Zone | The zone. |
Returns
NeuteredAddressInfo[]
The addresses for the zone.
Overrides
AbstractHDWallet.getAddressesForZone
Source
wallet/quai-hdwallet.ts:397
getNextAddress()
getNextAddress(account, zone): Promise<NeuteredAddressInfo>
Promise that resolves to the next address for the specified account and zone.
Parameters
| Parameter | Type | Description |
|---|
account | number | The index of the account for which to retrieve the next address. |
zone | Zone | The zone in which to retrieve the next address. |
Returns
Promise<NeuteredAddressInfo>
The next neutered address information.
Overrides
AbstractHDWallet.getNextAddress
Source
wallet/quai-hdwallet.ts:273
getNextAddressSync()
getNextAddressSync(account, zone): NeuteredAddressInfo
Synchronously retrieves the next address for the specified account and zone.
Parameters
| Parameter | Type | Description |
|---|
account | number | The index of the account for which to retrieve the next address. |
zone | Zone | The zone in which to retrieve the next address. |
Returns
NeuteredAddressInfo
The next neutered address information.
Overrides
AbstractHDWallet.getNextAddressSync
Source
wallet/quai-hdwallet.ts:284
getPrivateKey()
getPrivateKey(address): string
Returns the private key for a given address. This method should be used with caution as it exposes the private
key to the user.
Parameters
| Parameter | Type | Description |
|---|
address | string | The address associated with the desired private key. |
Returns
string
The private key.
Overrides
AbstractHDWallet.getPrivateKey
Source
wallet/quai-hdwallet.ts:365
sendTransaction()
sendTransaction(tx): Promise<TransactionResponse>
Send a transaction.
Parameters
| Parameter | Type | Description |
|---|
tx | QuaiTransactionRequest | The transaction request. |
Returns
Promise<TransactionResponse>
A promise that resolves to the transaction response.
Throws
If the provider is not set.
Source
wallet/quai-hdwallet.ts:103
serialize()
serialize(): SerializedQuaiHDWallet
Serializes the QuaiHDWallet state into a format suitable for storage or transmission.
This method extends the serialization from the parent class (AbstractHDWallet) and includes additional
QuaiHDWallet-specific data, such as the addresses.
Returns
SerializedQuaiHDWallet
An object representing the serialized state of the QuaiHDWallet, including
addresses and other inherited properties from the parent wallet.
Overrides
AbstractHDWallet.serialize
Example
Const wallet = new QuaiHDWallet(); const serializedData = wallet.serialize(); // serializedData can now
be stored or transmitted
Source
wallet/quai-hdwallet.ts:137
signMessage()
signMessage(address, message): Promise<string>
Sign a message.
Parameters
| Parameter | Type | Description |
|---|
address | string | The address. |
message | string | Uint8Array | The message to sign. |
Returns
Promise<string>
A promise that resolves to the signed message.
Overrides
AbstractHDWallet.signMessage
Source
wallet/quai-hdwallet.ts:120
signTransaction()
signTransaction(tx): Promise<string>
Sign a transaction.
Parameters
| Parameter | Type | Description |
|---|
tx | QuaiTransactionRequest | The transaction request. |
Returns
Promise<string>
A promise that resolves to the signed transaction.
Overrides
AbstractHDWallet.signTransaction
Source
wallet/quai-hdwallet.ts:89
signTypedData()
signTypedData(
address,
domain,
types,
value): Promise<string>
Signs typed data using the private key associated with the given address.
Parameters
| Parameter | Type | Description |
|---|
address | string | The address for which the typed data is to be signed. |
domain | TypedDataDomain | The domain information of the typed data, defining the scope of the signature. |
types | Record<string, TypedDataField[]> | The types of the data to be signed, mapping each data type name to its fields. |
value | Record<string, unknown> | The actual data to be signed. |
Returns
Promise<string>
A promise that resolves to the signed data in string format.
Throws
If the address does not correspond to a valid HD node or if signing fails.
Source
wallet/quai-hdwallet.ts:211
xPub()
Returns the extended public key of the root node of the BIP44 HD wallet.
Returns
string
The extended public key.
Source
wallet/quai-hdwallet.ts:79
createRandom()
static createRandom<T>(
this,
password?,
wordlist?): T
Creates a random HD wallet.
Type parameters
| Type parameter |
|---|
T extends AbstractHDWallet<NeuteredAddressInfo, T> |
Parameters
| Parameter | Type | Description |
|---|
this | Object | The constructor of the HD wallet. |
password? | string | The password. |
wordlist? | Wordlist | The wordlist. |
Returns
T
The created instance.
Inherited from
AbstractHDWallet.createRandom
Source
wallet/abstract-hdwallet.ts:195
deserialize()
static deserialize(serialized): Promise<QuaiHDWallet>
Deserializes the given serialized HD wallet data into an instance of QuaiHDWallet.
Parameters
| Parameter | Type | Description |
|---|
serialized | SerializedQuaiHDWallet | The serialized wallet data to be deserialized. |
Returns
Promise<QuaiHDWallet>
A promise that resolves to an instance of QuaiHDWallet.
Overrides
AbstractHDWallet.deserialize
Async
Throws
If validation of the serialized wallet data fails or if deserialization fails.
Static
Source
wallet/quai-hdwallet.ts:181
fromMnemonic()
static fromMnemonic<T>(this, mnemonic): T
Creates an HD wallet from a mnemonic.
Type parameters
| Type parameter |
|---|
T extends AbstractHDWallet<NeuteredAddressInfo, T> |
Parameters
| Parameter | Type | Description |
|---|
this | Object | The constructor of the HD wallet. |
mnemonic | Mnemonic | The mnemonic. |
Returns
T
The created instance.
Inherited from
AbstractHDWallet.fromMnemonic
Source
wallet/abstract-hdwallet.ts:180
fromPhrase()
static fromPhrase<T>(
this,
phrase,
password?,
wordlist?): T
Creates an HD wallet from a phrase.
Type parameters
| Type parameter |
|---|
T extends AbstractHDWallet<NeuteredAddressInfo, T> |
Parameters
| Parameter | Type | Description |
|---|
this | Object | The constructor of the HD wallet. |
phrase | string | The phrase. |
password? | string | The password. |
wordlist? | Wordlist | The wordlist. |
Returns
T
The created instance.
Inherited from
AbstractHDWallet.fromPhrase
Source
wallet/abstract-hdwallet.ts:219