- 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
- Serializing the wallet to JSON and deserializing it back to a wallet instance.
Example
Extends
AbstractHDWallet
<QiAddressInfo
>
Properties
Property | Modifier | Type | Default value | Description |
---|---|---|---|---|
bip47HDNode | private | HDNodeWallet | undefined | The BIP47 HDNode instance used for deriving payment code addresses. This follows the BIP47 derivation path m/47’/969’/account’/0/index |
changeBip44 | private | Bip44QiWallet | undefined | The BIP44 wallet instance used for deriving change (sending) addresses. This follows the BIP44 derivation path m/44’/969’/account’/0/index |
externalBip44 | private | Bip44QiWallet | undefined | The BIP44 wallet instance used for deriving external (receiving) addresses. This follows the BIP44 derivation path m/44’/969’/account’/0/index |
paymentChannels | private | Map <string , PaymentChannel > | ... | Map of payment channels indexed by counterparty payment code |
privatekeyWallet | private | PrivatekeyQiWallet | undefined | The private key wallet instance used for deriving addresses from private keys. |
bip47derivationPath | private | string | "m/47'/969'" | The BIP47 derivation path m/47’/969’ |
Accessors
openChannels
Returns
string
[]
The payment codes for all open channels.
Source
wallet/qi-hdwallet.ts:279Methods
addAddress()
Parameters
Parameter | Type | Description |
---|---|---|
account | number | The account number. |
addressIndex | number | The address index. |
Returns
QiAddressInfo
The address info for the new address.
Overrides
AbstractHDWallet.addAddress
Source
wallet/qi-hdwallet.ts:1542addChangeAddress()
Parameters
Parameter | Type | Description |
---|---|---|
account | number | The account number. |
addressIndex | number | The address index. |
Returns
QiAddressInfo
The address info for the new address.
Source
wallet/qi-hdwallet.ts:1556aggregate()
Parameters
Parameter | Type | Description |
---|---|---|
zone | Zone | The zone to aggregate the balance for. |
options ? | QiTransactionOptions | Optional transaction configuration. |
Returns
Promise
<TransactionResponse
>
The transaction response.
Source
wallet/qi-hdwallet.ts:568checkAddressUse()
Parameters
Parameter | Type | Description |
---|---|---|
address | string | The address to check. |
Returns
Promise
<{
"isUsed"
: boolean
;
"outpoints"
: Outpoint
[];
}>
A promise that resolves to an object containing a
boolean indicating whether the address is used and an array of outpoints.
isUsed
outpoints
Throws
If the query fails.Source
wallet/qi-hdwallet.ts:1086connect()
Parameters
Parameter | Type | Description |
---|---|---|
provider | Provider | The provider. |
Returns
void
Overrides
AbstractHDWallet.connect
Source
wallet/qi-hdwallet.ts:259convertToQuai()
Parameters
Parameter | Type | Description |
---|---|---|
destinationAddress | string | The Quai address to send the converted Quai to. |
amount | bigint | The amount of Qi to convert to Quai. |
options ? | QiTransactionOptions | Optional transaction configuration. |
Returns
Promise
<TransactionResponse
>
A promise that resolves to the transaction response.
Throws
If the destination address is invalid, the amount is zero, or the conversion fails.Source
wallet/qi-hdwallet.ts:481getAddressInfo()
Parameters
Parameter | Type | Description |
---|---|---|
address | string | The address to locate. |
Returns
null
| QiAddressInfo
The address info or null if not found.
Overrides
AbstractHDWallet.getAddressInfo
Source
wallet/qi-hdwallet.ts:426getAddressesForAccount()
Parameters
Parameter | Type | Description |
---|---|---|
account | number | The account number. |
Returns
QiAddressInfo
[]
The addresses for the account.
Overrides
AbstractHDWallet.getAddressesForAccount
Source
wallet/qi-hdwallet.ts:1569getAddressesForZone()
Parameters
Parameter | Type | Description |
---|---|---|
zone | Zone | The zone. |
Returns
QiAddressInfo
[]
The addresses for the zone.
Overrides
AbstractHDWallet.getAddressesForZone
Source
wallet/qi-hdwallet.ts:1109getBalanceForZone()
- BIP44 external addresses
- BIP44 change addresses
- BIP47 payment channel addresses
- Imported private key addresses
Parameters
Parameter | Type | Description |
---|---|---|
zone | Zone | The zone to get the balance for |
Returns
Promise
<bigint
>
The total balance in the zone as a bigint
Source
wallet/qi-hdwallet.ts:1591getChangeAddressesForOutputs()
Parameters
Parameter | Type | Default value | Description |
---|---|---|---|
count | number | undefined | The number of change addresses needed |
zone | Zone | undefined | The zone to get change addresses from |
account ? | number | 0 | The account index to use (defaults to 0). Default is 0 |
Returns
Promise
<string
[]>
A promise that resolves to an array of change addresses
Source
wallet/qi-hdwallet.ts:853getChangeAddressesForZone()
Parameters
Parameter | Type | Description |
---|---|---|
zone | Zone | The zone. |
Returns
QiAddressInfo
[]
The change addresses for the zone.
Source
wallet/qi-hdwallet.ts:1120getGapAddressesForZone()
Parameters
Parameter | Type | Description |
---|---|---|
zone | Zone | The zone. |
Returns
QiAddressInfo
[]
The gap addresses for the zone.
Source
wallet/qi-hdwallet.ts:1131getGapChangeAddressesForZone()
Parameters
Parameter | Type | Description |
---|---|---|
zone | Zone | The zone. |
Returns
QiAddressInfo
[]
The gap change addresses for the zone.
Source
wallet/qi-hdwallet.ts:1143getGapPaymentChannelAddressesForZone()
Parameters
Parameter | Type | Description |
---|---|---|
paymentCode | string | The payment code. |
zone | Zone | - |
Returns
QiAddressInfo
[]
The gap payment channel addresses for the payment code.
Source
wallet/qi-hdwallet.ts:1166getImportedAddresses()
Parameters
Parameter | Type | Description |
---|---|---|
zone ? | Zone | Optional zone to filter addresses by |
Returns
QiAddressInfo
[]
Array of address info objects for imported addresses
Source
wallet/qi-hdwallet.ts:1531getNextAddress()
Parameters
Parameter | Type | Description |
---|---|---|
account | number | The account number. |
zone | Zone | The zone. |
Returns
Promise
<QiAddressInfo
>
The next Qi address information.
Overrides
AbstractHDWallet.getNextAddress
Source
wallet/qi-hdwallet.ts:301getNextAddressSync()
Parameters
Parameter | Type | Description |
---|---|---|
account | number | The account number. |
zone | Zone | The zone. |
Returns
QiAddressInfo
The next Qi address information.
Overrides
AbstractHDWallet.getNextAddressSync
Source
wallet/qi-hdwallet.ts:312getNextChangeAddress()
Parameters
Parameter | Type | Description |
---|---|---|
account | number | The index of the account for which to retrieve the next change address. |
zone | Zone | The zone in which to retrieve the next change address. |
Returns
Promise
<QiAddressInfo
>
The next change neutered address information.
Source
wallet/qi-hdwallet.ts:323getNextChangeAddressSync()
Parameters
Parameter | Type | Description |
---|---|---|
account | number | The index of the account for which to retrieve the next change address. |
zone | Zone | The zone in which to retrieve the next change address. |
Returns
QiAddressInfo
The next change neutered address information.
Source
wallet/qi-hdwallet.ts:334getNextReceiveAddress()
Parameters
Parameter | Type | Default value | Description |
---|---|---|---|
senderPaymentCode | string | undefined | The Base58-encoded BIP47 payment code of the sender. |
zone | Zone | undefined | - |
account | number | 0 | - |
Returns
QiAddressInfo
A promise that resolves to the payment address for receiving funds.
Throws
Throws an error if the payment code version is invalid.Source
wallet/qi-hdwallet.ts:1473getNextSendAddress()
Parameters
Parameter | Type | Default value | Description |
---|---|---|---|
receiverPaymentCode | string | undefined | The Base58-encoded BIP47 payment code of the receiver. |
zone | Zone | undefined | - |
account | number | 0 | - |
Returns
QiAddressInfo
A promise that resolves to the payment address for sending funds.
Throws
Throws an error if the payment code version is invalid.Source
wallet/qi-hdwallet.ts:1457getOutpoints()
Parameters
Parameter | Type | Description |
---|---|---|
zone | Zone | The zone. |
Returns
OutpointInfo
[]
The outpoints for the zone.
Source
wallet/qi-hdwallet.ts:388getPaymentChannelAddressesForZone()
Parameters
Parameter | Type | Description |
---|---|---|
paymentCode | string | The payment code. |
zone | Zone | The zone. |
Returns
QiAddressInfo
[]
The payment channel addresses for the zone.
Source
wallet/qi-hdwallet.ts:1156getPaymentCode()
Parameters
Parameter | Type | Default value | Description |
---|---|---|---|
account | number | 0 | The account index to derive the payment code from. |
Returns
string
A promise that resolves to the Base58-encoded BIP47 payment code.
Source
wallet/qi-hdwallet.ts:1444getPrivateKey()
Parameters
Parameter | Type | Description |
---|---|---|
address | string | The address associated with the desired private key. |
Returns
string
The private key.
Overrides
AbstractHDWallet.getPrivateKey
Source
wallet/qi-hdwallet.ts:987getPrivateKeyForTxInput()
- For BIP44 addresses (standard or change), it uses the HD wallet to derive the private key.
- For payment channel addresses (BIP47), it uses PaymentCodePrivate to derive the private key.
Parameters
Parameter | Type | Description |
---|---|---|
input | TxInput | The transaction input containing the public key. |
Returns
string
The private key corresponding to the transaction input.
Throws
If the input does not contain a public key or if the address information cannot be found.Source
wallet/qi-hdwallet.ts:974getUnusedBIP44Addresses()
Parameters
Parameter | Type | Description |
---|---|---|
amount | number | The number of addresses to get. |
account | number | - |
path | string | The derivation path to get addresses from. |
zone | Zone | The zone to get addresses from. |
Returns
QiAddressInfo
[]
An array of addresses.
Source
wallet/qi-hdwallet.ts:883importOutpoints()
Parameters
Parameter | Type | Description |
---|---|---|
outpoints | OutpointInfo [] | The outpoints to import. |
Returns
void
Source
wallet/qi-hdwallet.ts:343importPrivateKey()
Parameters
Parameter | Type | Description |
---|---|---|
privateKey | string | The private key to import (hex string) |
Returns
Promise
<QiAddressInfo
>
The address information for the imported key
Throws
If the private key is invalid or the address is already in useSource
wallet/qi-hdwallet.ts:1510openChannel()
Parameters
Parameter | Type | Description |
---|---|---|
paymentCode | string | The payment code to store. |
Returns
void
Source
wallet/qi-hdwallet.ts:1487outpointsToUTXOs()
Parameters
Parameter | Type | Description |
---|---|---|
zone | Zone | The zone to filter outpoints for. |
Returns
UTXO
[]
An array of UTXO objects.
Source
wallet/qi-hdwallet.ts:460prepareAndSendTransaction()
Parameters
Parameter | Type | Description |
---|---|---|
amount | bigint | The amount of Qi to send. |
originZone | Zone | The zone where the transaction originates. |
getDestinationAddresses | (count ) => Promise <string []> | A function that returns a promise resolving to an array of destination addresses. |
coinSelectorCreator | (utxos ) => FewestCoinSelector | ConversionCoinSelector | - |
options | QiTransactionOptions | - |
Returns
Promise
<TransactionResponse
>
A promise that resolves to the transaction response.
Throws
If provider is not set, insufficient balance, no available UTXOs, or insufficient spendable balance.Source
wallet/qi-hdwallet.ts:611prepareFeeEstimationTransaction()
Parameters
Parameter | Type | Description |
---|---|---|
selection | SelectedCoinsResult | The selected coins result. |
inputPubKeys | string [] | The public keys of the inputs. |
sendAddresses | string [] | The addresses to send to. |
changeAddresses | string [] | The addresses to change to. |
Returns
QiPerformActionTransaction
The prepared transaction.
Source
wallet/qi-hdwallet.ts:807prepareTransaction()
Parameters
Parameter | Type | Description |
---|---|---|
selection | SelectedCoinsResult | The selected coins result. |
sendAddresses | string [] | The addresses to send to. |
changeAddresses | string [] | The addresses to change to. |
chainId | number | The chain ID. |
options | QiTransactionOptions | - |
Returns
Promise
<QiTransaction
>
A promise that resolves to the prepared transaction.
Source
wallet/qi-hdwallet.ts:741scan()
Parameters
Parameter | Type | Default value | Description |
---|---|---|---|
zone | Zone | undefined | The zone in which to scan for addresses. |
account ? | number | 0 | The index of the account to scan. Default is 0 |
Returns
Promise
<void
>
A promise that resolves when the scan is complete.
Throws
If the zone is invalid.Source
wallet/qi-hdwallet.ts:1025sendTransaction()
Parameters
Parameter | Type | Description |
---|---|---|
recipientPaymentCode | string | The payment code of the recipient. |
amount | bigint | The amount of Qi to send. |
originZone | Zone | The zone where the transaction originates. |
destinationZone | Zone | The zone where the transaction is sent. |
options ? | QiTransactionOptions | Optional transaction configuration. |
Returns
Promise
<TransactionResponse
>
A promise that resolves to the transaction response.
Throws
If the payment code is invalid, the amount is zero, or the zones are invalid.Source
wallet/qi-hdwallet.ts:523serialize()
Returns
SerializedQiHDWallet
An object representing the serialized state of the HD wallet, including
outpoints, change addresses, gap addresses, and other inherited properties.
Overrides
AbstractHDWallet.serialize
Source
wallet/qi-hdwallet.ts:1197setAddressUseChecker()
Parameters
Parameter | Type | Description |
---|---|---|
checker | AddressUsageCallback | The address use checker. |
Returns
void
Source
wallet/qi-hdwallet.ts:290signMessage()
Parameters
Parameter | Type | Description |
---|---|---|
address | string | The address for which the message is to be signed. |
message | string | Uint8Array | The message to be signed, either as a string or Uint8Array. |
Returns
Promise
<string
>
A promise that resolves to the signature of the message in hexadecimal string format.
Overrides
AbstractHDWallet.signMessage
Throws
If the address does not correspond to a valid HD node or if signing fails.Source
wallet/qi-hdwallet.ts:1179signTransaction()
Parameters
Parameter | Type | Description |
---|---|---|
tx | QiTransactionRequest | The transaction to sign. |
Returns
Promise
<string
>
The serialized transaction.
Overrides
AbstractHDWallet.signTransaction
Throws
If the UTXO transaction is invalid.Source
wallet/qi-hdwallet.ts:402sync()
Parameters
Parameter | Type | Default value | Description |
---|---|---|---|
zone | Zone | undefined | The zone in which to sync addresses. |
account ? | number | 0 | The index of the account to sync. Default is 0 |
onOutpointsCreated ? | OutpointsCallback | undefined | - |
onOutpointsDeleted ? | OutpointsCallback | undefined | - |
Returns
Promise
<void
>
A promise that resolves when the sync is complete.
Throws
If the zone is invalid.Source
wallet/qi-hdwallet.ts:1044validateDerivationPath()
Parameters
Parameter | Type | Description |
---|---|---|
path | string | The derivation path to validate |
isChange | boolean | Whether this is a change address |
Returns
void
Throws
If the path is invalidSource
wallet/qi-hdwallet.ts:1363xPub()
Returns
string
The extended public key.
Source
wallet/qi-hdwallet.ts:249createRandom()
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:195deserialize()
Parameters
Parameter | Type | Description |
---|---|---|
serialized | SerializedQiHDWallet | The serialized object representing the state of a QiHDWallet. |
Returns
Promise
<QiHDWallet
>
A promise that resolves to a reconstructed QiHDWallet instance.
Overrides
AbstractHDWallet.deserialize
Throws
If the serialized data is invalid or if any addresses in the gap addresses or gap change addresses do not exist in the wallet.Source
wallet/qi-hdwallet.ts:1240fromMnemonic()
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:180fromPhrase()
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