PoolChainFixture class

The proofs and headers of a pool's first two rounds, with the real V: round 1 takes in a deposit of 500 through receipt slot 0 beside padding transfers, and round 2 spends that note into a 200 note and a withdrawal of 300 to withdrawalPKH. At test parameters (4 transfers, 2 receipt slots) unless production, which proves the 256-transfer throughput plan with nullifiers and 8 receipt slots, as the pool runs it. Nothing here is a transaction; pool_round_v_test builds the chain in memory and pool_localnet_test builds it on a node, both from this.

The notes are real: the deposit note and round 2's 200 change note go to wallet's address walletD, every other real output to a stranger's, and each real transfer carries the hybrid bundles of its two outputs. Padding transfers pay ShieldedTransfer.paddingNote with an empty bundle, as the coordinator's are. So the chain a reader and a scanner are tested on is the one that is mined.

Properties

agg → PoolAggregation
final
body → List<int>
final
bundles → List<int>
final
bundles2 → List<int>
final
g → PoolHeader
final
h1 → PoolHeader
final
h2 → PoolHeader
final
hashCode → int
The hash code for this object.
no setterinherited
proof → PoolRoundProof
final
proof2 → PoolRoundProof
final
receipt → PoolReceipt
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
transfers1 → List<ShieldedTransfer>
Each round's transfers in round order. Round 1's first is the deposit, without the covenant outpoint it backs: that is built later, from receipt.
final
transfers2 → List<ShieldedTransfer>
Each round's transfers in round order. Round 1's first is the deposit, without the covenant outpoint it backs: that is built later, from receipt.
final
v → PoolVerifierGen
final
wallet → PoolWalletKeys
The wallet the deposit and the change are paid to, and the address.
final
walletD → List<int>
final
withdrawal → PoolWithdrawal
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

plan({bool production = false}) → PoolAggregation
The plan the fixture proves under: the 256-transfer throughput plan with nullifiers and 8 receipt slots at production, else a 4-transfer plan at test parameters with 2 receipt slots. A coordinator run on the fixture's chain is configured with the same.
prove({required List<int> withdrawalPKH, bool production = false, bool verbose = false, bool aggregate = true}) → Future<PoolChainFixture>
With aggregate false the spend proofs are made and the trees advanced, but no round is aggregated: proof and proof2 are bare and transfers1 and transfers2 are what a coordinator, which aggregates itself, takes in. That saves the two aggregations (about 12 minutes at production) when only the transfers are wanted.