MerkleListIterator
o1js / Modules / MerkleListIterator
Class: MerkleListIterator\<T>
MerkleListIterator helps iterating through a Merkle list.
This works similar to calling list.pop() repeatedly, but maintaining the entire list instead of removing elements.
The core method that supports iteration is ().
let iterator = MerkleListIterator.startIterating(list);
let firstElement = iterator.next();
We maintain two commitments, both of which are equivalent to a Merkle list hash starting from the end of the array:
- One to the entire array, to prove that we start iterating at the beginning.
- One to the array from the current index until the end, to efficiently step forward.
Type parameters
| Name |
|---|
T |
Implements
MerkleListIteratorBase\<T>
Table of contents
Constructors
Properties
Accessors
Methods
Constructors
constructor
• new MerkleListIterator\<T>(value)
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type |
|---|---|
value | MerkleListIteratorBase\<T> |
Defined in
lib/provable-types/merkle-list.ts:333
Properties
currentHash
• currentHash: Field
Implementation of
MerkleListIteratorBase.currentHash
Defined in
lib/provable-types/merkle-list.ts:330
currentIndex
• currentIndex: Unconstrained\<number>
Implementation of
MerkleListIteratorBase.currentIndex
Defined in
lib/provable-types/merkle-list.ts:331
data
• Readonly data: Unconstrained\<WithHash\<T>[]>
Implementation of
MerkleListIteratorBase.data
Defined in
lib/provable-types/merkle-list.ts:326
hash
• Readonly hash: Field
Implementation of
MerkleListIteratorBase.hash
Defined in
lib/provable-types/merkle-list.ts:327
_emptyHash
▪ Static _emptyHash: undefined | Field
Defined in
lib/provable-types/merkle-list.ts:476
_innerProvable
▪ Static _innerProvable: undefined | ProvableHashable\<any>
Defined in
lib/provable-types/merkle-list.ts:479
_nextHash
▪ Static _nextHash: undefined | (hash: Field, value: any) => Field
Defined in
lib/provable-types/merkle-list.ts:475
_provable
▪ Static _provable: undefined | ProvableHashable\<MerkleListIterator\<any>>
Defined in
lib/provable-types/merkle-list.ts:478
Accessors
Constructor
• get Constructor(): typeof MerkleListIterator
Returns
typeof MerkleListIterator
Defined in
lib/provable-types/merkle-list.ts:481
innerProvable
• get innerProvable(): ProvableHashable\<T>
Returns
ProvableHashable\<T>
Defined in
lib/provable-types/merkle-list.ts:498
emptyHash
• Static get emptyHash(): Field
Returns
Defined in
lib/provable-types/merkle-list.ts:493
Methods
assertAtStart
▸ assertAtStart(): void
Returns
void
Defined in
lib/provable-types/merkle-list.ts:337
clone
▸ clone(): MerkleListIterator\<T>
Returns
Defined in
lib/provable-types/merkle-list.ts:394
isAtEnd
▸ isAtEnd(): Bool
Returns
Defined in
lib/provable-types/merkle-list.ts:341
jumpToEnd
▸ jumpToEnd(): void
Returns
void
Defined in
lib/provable-types/merkle-list.ts:344
jumpToEndIf
▸ jumpToEndIf(condition): void
Parameters
| Name | Type |
|---|---|
condition | Bool |
Returns
void
Defined in
lib/provable-types/merkle-list.ts:350
next
▸ next(): T
Returns
T
Defined in
lib/provable-types/merkle-list.ts:363
nextHash
▸ nextHash(hash, value): Field
Parameters
| Name | Type |
|---|---|
hash | Field |
value | T |
Returns
Defined in
lib/provable-types/merkle-list.ts:485
create
▸ Static create\<T>(type, nextHash?, emptyHash_?): typeof MerkleListIterator & { empty: () => MerkleListIterator\<T> ; from: (array: T[]) => MerkleListIterator\<T> ; provable: ProvableHashable\<MerkleListIterator\<T>> ; startIterating: (list: MerkleListBase\<T>) => MerkleListIterator\<T> }
Create a Merkle array type
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type | Default value |
|---|---|---|
type | ProvableHashable\<T> | undefined |
nextHash | (hash: Field, value: T) => Field | undefined |
emptyHash_ | Field | emptyHash |
Returns
typeof MerkleListIterator & { empty: () => MerkleListIterator\<T> ; from: (array: T[]) => MerkleListIterator\<T> ; provable: ProvableHashable\<MerkleListIterator\<T>> ; startIterating: (list: MerkleListBase\<T>) => MerkleListIterator\<T> }
Defined in
lib/provable-types/merkle-list.ts:408
createFromList
▸ Static createFromList\<T>(merkleList): typeof MerkleListIterator & { empty: () => MerkleListIterator\<T> ; from: (array: T[]) => MerkleListIterator\<T> ; provable: ProvableHashable\<MerkleListIterator\<T>> ; startIterating: (list: MerkleListBase\<T>) => MerkleListIterator\<T> }
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type |
|---|---|
merkleList | typeof MerkleList |
Returns
typeof MerkleListIterator & { empty: () => MerkleListIterator\<T> ; from: (array: T[]) => MerkleListIterator\<T> ; provable: ProvableHashable\<MerkleListIterator\<T>> ; startIterating: (list: MerkleListBase\<T>) => MerkleListIterator\<T> }