Skip to main content

Emulator

A simple emulated Network. This can be used to do integration tests of whole dApps. Staking is not yet supported.

export interface Emulator {
  blocks: EmulatorTx[][]
  createUtxo(
    wallet: SimpleWallet,
    lovelace: bigint,
    assets: Assets
  ): TxOutputId
  createWallet(
    lovelace: bigint,
    assets: Assets
  ): SimpleWallet
  currentSlot: number
  dump(): void
  genesis: EmulatorGenesisTx[]
  getUtxo(id: TxOutputId): Promise<TxInput>
  getUtxos(addr: Address): Promise<TxInput[]>
  isConsumed(utxo: TxInput): boolean
  isMainnet(): boolean
  mempool: EmulatorTx[]
  now: number
  parameters: Promise<NetworkParams>
  parametersSync: NetworkParams
  submitTx(tx: Tx): Promise<TxId>
  tick(nSlots: IntLike): void
  txIds: TxId[]
}

Properties

blocks

emulator.blocks satisfies EmulatorTx[][]

createUtxo

Creates a UTxO using a GenesisTx.

emulator.createUtxo satisfies (
  wallet: SimpleWallet,
  lovelace: bigint,
  assets: Assets
) => TxOutputId

createWallet

Creates a new SimpleWallet and populates it with a given lovelace quantity and assets. Special genesis transactions are added to the emulated chain in order to create these assets.

emulator.createWallet satisfies (
  lovelace: bigint,
  assets: Assets
) => SimpleWallet

currentSlot

emulator.currentSlot satisfies number

dump

Dumps to current emulator state to console

emulator.dump satisfies () => void

genesis

emulator.genesis satisfies EmulatorGenesisTx[]

getUtxo

Throws an error if the UTxO isn't found

emulator.getUtxo satisfies (id: TxOutputId) => Promise<TxInput>

getUtxos

emulator.getUtxos satisfies (addr: Address) => Promise<TxInput[]>

isConsumed

emulator.isConsumed satisfies (utxo: TxInput) => boolean

isMainnet

Returns false

emulator.isMainnet satisfies () => boolean

mempool

emulator.mempool satisfies EmulatorTx[]

now

Multiplies currentslot by 1000 (i.e. each slot is assumed to be 1000 milliseconds)

emulator.now satisfies number

parameters

emulator.parameters satisfies Promise<NetworkParams>

parametersSync

emulator.parametersSync satisfies NetworkParams

submitTx

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

tick

emulator.tick satisfies (nSlots: IntLike) => void

txIds

Ignores the genesis txs

emulator.txIds satisfies TxId[]