Skip to main content

Cip30Wallet

Wallet that lets you connect to a Cip30 browser plugin wallet.

export interface Cip30Wallet {
  collateral: Promise<TxInput<PubKeyHash>[]>
  handle: Cip30FullHandle
  isMainnet(): Promise<boolean>
  signData(
    addr: ShelleyAddress<PubKeyHash>,
    data: BytesLike
  ): Promise<{
    key: PubKey
    signature: Cip30CoseSign1
  }>
  signTx(tx: Tx): Promise<Signature[]>
  stakingAddresses: Promise<StakingAddress[]>
  submitTx(tx: Tx): Promise<TxId>
  unusedAddresses: Promise<Address<PubKeyHash>[]>
  usedAddresses: Promise<Address<PubKeyHash>[]>
  utxos: Promise<TxInput<PubKeyHash>[]>
}

Properties

collateral

cip30Wallet.collateral satisfies Promise<TxInput<PubKeyHash>[]>

handle

cip30Wallet.handle satisfies Cip30FullHandle

isMainnet

Returns true if the wallet is connected to the mainnet.

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

signData

Sign a data payload with the users wallet.

cip30Wallet.signData satisfies (
  addr: ShelleyAddress<PubKeyHash>,
  data: BytesLike
) => Promise<{
  key: PubKey
  signature: Cip30CoseSign1
}>

signTx

Signs a transaction, returning a list of signatures needed for submitting a valid transaction.

cip30Wallet.signTx satisfies (tx: Tx) => Promise<Signature[]>

stakingAddresses

Gets a list of unique reward addresses which can be used to UTxOs to.

cip30Wallet.stakingAddresses satisfies Promise<StakingAddress[]>

submitTx

Submits a transaction to the blockchain.

cip30Wallet.submitTx satisfies (tx: Tx) => Promise<TxId>

unusedAddresses

Gets a list of unique unused addresses which can be used to UTxOs to.

cip30Wallet.unusedAddresses satisfies Promise<Address<PubKeyHash>[]>

usedAddresses

Gets a list of addresses which contain(ed) UTxOs.

cip30Wallet.usedAddresses satisfies Promise<Address<PubKeyHash>[]>

utxos

Gets the complete list of UTxOs (as TxInput instances) sitting at the addresses owned by the wallet.

cip30Wallet.utxos satisfies Promise<TxInput<PubKeyHash>[]>