Skip to main content

WalletHelper

High-level helper for Wallet instances.

export interface WalletHelper {
  allAddresses: Promise<Address[]>
  baseAddress: Promise<Address>
  calcBalance(): Promise<Value>
  changeAddress: Promise<Address>
  collateral: Promise<TxInput[]>
  isMainnet(): Promise<boolean>
  isOwnAddress(addr: Address): Promise<boolean>
  isOwnPubKeyHash(pkh: PubKeyHash): Promise<boolean>
  refUtxo: Promise<undefined | TxInput>
  selectCollateral(amount: bigint): Promise<TxInput>
  selectUtxo(value: Value): Promise<TxInput>
  selectUtxos(
    amount: Value,
    coinSelection: CoinSelection<SpendingCredential>
  ): Promise<TxInput[]>
  signData: unknown
  signTx: unknown
  stakingAddresses: Promise<StakingAddress[]>
  submitTx: unknown
  toJsonSafe(): Promise<OfflineWalletJsonSafe>
  toOfflineWallet(): Promise<OfflineWallet>
  unusedAddresses: Promise<Address[]>
  usedAddresses: Promise<Address[]>
  utxos: Promise<TxInput[]>
  wallet: W
}

Properties

allAddresses

Concatenation of usedAddresses and unusedAddresses.

walletHelper.allAddresses satisfies Promise<Address[]>

baseAddress

First Address in allAddresses. Throws an error if there aren't any addresses.

walletHelper.baseAddress satisfies Promise<Address>

calcBalance

Sums the values of all the utxos.

walletHelper.calcBalance satisfies () => Promise<Value>

changeAddress

First Address in unusedAddresses (falls back to last Address in usedAddresses if unusedAddresses is empty or not defined).

walletHelper.changeAddress satisfies Promise<Address>

collateral

Returns a list of utxos suitable for use as collateral

walletHelper.collateral satisfies Promise<TxInput[]>

isMainnet

Returns true if the wallet is connected to the mainnet.

walletHelper.isMainnet satisfies () => Promise<boolean>

isOwnAddress

Returns true if the PubKeyHash in the given Address is controlled by the wallet.

walletHelper.isOwnAddress satisfies (addr: Address) => Promise<boolean>

isOwnPubKeyHash

Returns true if the given PubKeyHash is controlled by the wallet.

walletHelper.isOwnPubKeyHash satisfies (pkh: PubKeyHash) => Promise<boolean>

refUtxo

First UTxO in utxos. Can be used to distinguish between preview and preprod networks.

walletHelper.refUtxo satisfies Promise<undefined | TxInput>

selectCollateral

Picks a single UTxO intended as collateral. The amount defaults to 2 Ada, which should cover most things

walletHelper.selectCollateral satisfies (amount: bigint) => Promise<TxInput>

selectUtxo

Returns only a single utxo. Throws an error if a UTxO containing the given value isn't found.

walletHelper.selectUtxo satisfies (value: Value) => Promise<TxInput>

selectUtxos

Pick a number of UTxOs needed to cover a given Value. The default coin selection strategy is to pick the smallest first.

walletHelper.selectUtxos satisfies (
  amount: Value,
  coinSelection: CoinSelection<SpendingCredential>
) => Promise<TxInput[]>

signData

Signs a message, returning an object containing the Signature that can be used to verify/authenticate the message later. Only available if the underlying wallet isn't a ReadonlyWallet

walletHelper.signData satisfies unknown

signTx

Signs a transaction, returning a list of signatures needed for submitting a valid transaction. Only available if the underlying wallet isn't a ReadonlyWallet

walletHelper.signTx satisfies unknown

stakingAddresses

Returns a list of the reward addresses.

walletHelper.stakingAddresses satisfies Promise<StakingAddress[]>

submitTx

Submits a transaction to the blockchain and returns the id of that transaction upon success. Only available if the underlying wallet isn't a ReadonlyWallet

walletHelper.submitTx satisfies unknown

toJsonSafe

walletHelper.toJsonSafe satisfies () => Promise<OfflineWalletJsonSafe>

toOfflineWallet

walletHelper.toOfflineWallet satisfies () => Promise<OfflineWallet>

unusedAddresses

Returns a list of unique unused addresses which can be used to send UTxOs to with increased anonimity.

walletHelper.unusedAddresses satisfies Promise<Address[]>

usedAddresses

Returns a list of addresses which already contain UTxOs.

walletHelper.usedAddresses satisfies Promise<Address[]>

utxos

Uses the fallback if the list returned from underlying wallet is empty.

walletHelper.utxos satisfies Promise<TxInput[]>

wallet

Returns the underlying wallet

walletHelper.wallet satisfies W