Skip to main content

@midnight/zswap v0.3.11Readme | API


@midnight/zswap v0.3.11 / ZswapChainState

Class: ZswapChainState

The on-chain state of Zswap, consisting of a Merkle tree of coin commitments, a set of nullifiers, an index into the Merkle tree, and a set of valid past Merkle tree roots

Constructors

new ZswapChainState()

new ZswapChainState(): ZswapChainState

Returns

ZswapChainState

Properties

firstFree

readonly firstFree: bigint;

The first free index in the coin commitment tree

Methods

serialize()

serialize(): Uint8Array

Returns

Uint8Array


toString()

toString(compact?): string

Parameters

compact?: boolean

Returns

string


tryApply()

tryApply(offer, whitelist?): [ZswapChainState, Map<string, bigint>]

Try to apply an Offer to the state, returning the updated state and a map on newly inserted coin commitments to their inserted indices.

Parameters

offer: Offer

whitelist?: Set<string>

A set of contract addresses that are of interest. If set, only these addresses are tracked, and all other information is discarded.

Returns

[ZswapChainState, Map<string, bigint>]


tryApplyProofErased()

tryApplyProofErased(offer, whitelist?): [ZswapChainState, Map<string, bigint>]

tryApply for ProofErasedOffers

Parameters

offer: ProofErasedOffer

whitelist?: Set<string>

Returns

[ZswapChainState, Map<string, bigint>]


deserialize()

static deserialize(raw): ZswapChainState

Parameters

raw: Uint8Array

Returns

ZswapChainState


deserializeFromLedgerState()

static deserializeFromLedgerState(raw): ZswapChainState

Given a whole ledger serialized state, deserialize only the Zswap portion

Parameters

raw: Uint8Array

Returns

ZswapChainState