Accounts required by the closeEmptyTree instruction
Accounts required by the initEmptyMerkleTree instruction
Accounts required by the insertOrAppend instruction
Accounts required by the append instruction
Accounts required by the closeEmptyTree instruction
Accounts required by the initEmptyMerkleTree instruction
Accounts required by the insertOrAppend instruction
Accounts required by the replaceLeaf instruction
Accounts required by the transferAuthority instruction
Accounts required by the verifyLeaf instruction
Canopy fields necessary for deserializing an on-chain Canopy for a ConcurrentMerkleTreeAccount
ChangeLog information necessary for deserializing an on-chain ConcurrentMerkleTree
ConcurrentMerkleTree fields necessary for deserializing an on-chain ConcurrentMerkleTree
DepthSizePair is a valid (maxDepth
, maxBufferSize
) tuple for an SPL ConcurrentMerkleTree
Only the tuples listed in ALL_DEPTH_SIZE_PAIRS are valid for
creating a new ConcurrentMerkleTreeAccount.
Canopy fields necessary for deserializing an on-chain Path used in an ConcurrentMerkleTree
Accounts required by the replaceLeaf instruction
Accounts required by the transferAuthority instruction
Accounts required by the verifyLeaf instruction
Union type respresenting the AccountCompressionEvent data enum defined in Rust.
NOTE: that it includes a __kind
property which allows to narrow types in
switch/if statements.
Additionally isAccountCompressionEvent*
type guards are exposed below to narrow to a specific variant.
This type is used to derive the AccountCompressionEvent type as well as the de/serializer. However don't refer to it in your code but use the AccountCompressionEvent type instead.
Union type respresenting the ApplicationDataEvent data enum defined in Rust.
NOTE: that it includes a __kind
property which allows to narrow types in
switch/if statements.
Additionally isApplicationDataEvent*
type guards are exposed below to narrow to a specific variant.
This type is used to derive the ApplicationDataEvent type as well as the de/serializer. However don't refer to it in your code but use the ApplicationDataEvent type instead.
Union type respresenting the ChangeLogEvent data enum defined in Rust.
NOTE: that it includes a __kind
property which allows to narrow types in
switch/if statements.
Additionally isChangeLogEvent*
type guards are exposed below to narrow to a specific variant.
This type is used to derive the ChangeLogEvent type as well as the de/serializer. However don't refer to it in your code but use the ChangeLogEvent type instead.
Union type respresenting the ConcurrentMerkleTreeHeaderData data enum defined in Rust.
NOTE: that it includes a __kind
property which allows to narrow types in
switch/if statements.
Additionally isConcurrentMerkleTreeHeaderData*
type guards are exposed below to narrow to a specific variant.
This type is used to derive the ConcurrentMerkleTreeHeaderData type as well as the de/serializer. However don't refer to it in your code but use the ConcurrentMerkleTreeHeaderData type instead.
Union type respresenting the AccountCompressionEvent data enum defined in Rust.
NOTE: that it includes a __kind
property which allows to narrow types in
switch/if statements.
Additionally isAccountCompressionEvent*
type guards are exposed below to narrow to a specific variant.
This type is used to derive the AccountCompressionEvent type as well as the de/serializer. However don't refer to it in your code but use the AccountCompressionEvent type instead.
Accounts required by the append instruction
Union type respresenting the ApplicationDataEvent data enum defined in Rust.
NOTE: that it includes a __kind
property which allows to narrow types in
switch/if statements.
Additionally isApplicationDataEvent*
type guards are exposed below to narrow to a specific variant.
This type is used to derive the ApplicationDataEvent type as well as the de/serializer. However don't refer to it in your code but use the ApplicationDataEvent type instead.
Union type respresenting the ChangeLogEvent data enum defined in Rust.
NOTE: that it includes a __kind
property which allows to narrow types in
switch/if statements.
Additionally isChangeLogEvent*
type guards are exposed below to narrow to a specific variant.
This type is used to derive the ChangeLogEvent type as well as the de/serializer. However don't refer to it in your code but use the ChangeLogEvent type instead.
Accounts required by the closeEmptyTree instruction
Union type respresenting the ConcurrentMerkleTreeHeaderData data enum defined in Rust.
NOTE: that it includes a __kind
property which allows to narrow types in
switch/if statements.
Additionally isConcurrentMerkleTreeHeaderData*
type guards are exposed below to narrow to a specific variant.
This type is used to derive the ConcurrentMerkleTreeHeaderData type as well as the de/serializer. However don't refer to it in your code but use the ConcurrentMerkleTreeHeaderData type instead.
Accounts required by the initEmptyMerkleTree instruction
Accounts required by the insertOrAppend instruction
Accounts required by the replaceLeaf instruction
Accounts required by the transferAuthority instruction
Accounts required by the verifyLeaf instruction
Union type respresenting the AccountCompressionEvent data enum defined in Rust.
NOTE: that it includes a __kind
property which allows to narrow types in
switch/if statements.
Additionally isAccountCompressionEvent*
type guards are exposed below to narrow to a specific variant.
This type is used to derive the AccountCompressionEvent type as well as the de/serializer. However don't refer to it in your code but use the AccountCompressionEvent type instead.
Union type respresenting the ApplicationDataEvent data enum defined in Rust.
NOTE: that it includes a __kind
property which allows to narrow types in
switch/if statements.
Additionally isApplicationDataEvent*
type guards are exposed below to narrow to a specific variant.
This type is used to derive the ApplicationDataEvent type as well as the de/serializer. However don't refer to it in your code but use the ApplicationDataEvent type instead.
Union type respresenting the ChangeLogEvent data enum defined in Rust.
NOTE: that it includes a __kind
property which allows to narrow types in
switch/if statements.
Additionally isChangeLogEvent*
type guards are exposed below to narrow to a specific variant.
This type is used to derive the ChangeLogEvent type as well as the de/serializer. However don't refer to it in your code but use the ChangeLogEvent type instead.
Union type respresenting the ConcurrentMerkleTreeHeaderData data enum defined in Rust.
NOTE: that it includes a __kind
property which allows to narrow types in
switch/if statements.
Additionally isConcurrentMerkleTreeHeaderData*
type guards are exposed below to narrow to a specific variant.
This type is used to derive the ConcurrentMerkleTreeHeaderData type as well as the de/serializer. However don't refer to it in your code but use the ConcurrentMerkleTreeHeaderData type instead.
Valid pairs for creating a new ConcurrentMerkleTreeAccount
Program address
Program public key
Program address
Program public key
Creates a Append instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a CloseEmptyTree instruction.
that will be accessed while the instruction is processed
Attempts to resolve a custom program error from the provided error code.
Attempts to resolve a custom program error from the provided error name, i.e. 'Unauthorized'.
Creates a InitEmptyMerkleTree instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a InsertOrAppend instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a Append instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a CloseEmptyTree instruction.
that will be accessed while the instruction is processed
Creates a InitEmptyMerkleTree instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a InsertOrAppend instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a ReplaceLeaf instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a TransferAuthority instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a VerifyLeaf instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Helper function that adds proof nodes to a TransactionInstruction by adding extra keys to the transaction
Factory function for generating a beet
that can deserialize
an on-chain Canopy
Canopy of depth N
is an on-chain cache of the top
N
nodes in the ConcurrentMerkleTree. This is a total
of 2^(N+1) - 1
nodes. Each node has 32
bytes.
However, the current root of the tree is always stored in the
most recent ChangeLog, so we only need to cache the remaining N-1
levels.
The final formula for account size in bytes: (2^(N) - 1 - 1) * 32
.
Factory function for generating a beet
that can deserialize
an on-chain ConcurrentMerkleTree
Helper function for creating the ConcurrentMerkleTreeAccount. It is best to use this method to initialize a ConcurrentMerkleTreeAccount because these accounts can be quite large, and over the limit for what you can allocate via CPI.
Helper function for createAppendInstruction
Helper function for createCloseEmptyTreeInstruction.
Helper function for createInitEmptyMerkleTreeInstruction
Helper function for createReplaceLeafInstruction
Helper function for createTransferAuthorityIx
Helper function for createVerifyLeafInstruction
Helper function for indexing data logged via wrap_application_data_v1
Helper method for indexing a ConcurrentMerkleTree
Return expected depth of the cached Canopy tree just from the number of bytes used to store the Canopy
Calculate the expected size of an ConcurrentMerkleTreeAccount
Creates a ReplaceLeaf instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a TransferAuthority instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a VerifyLeaf instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a Append instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a CloseEmptyTree instruction.
that will be accessed while the instruction is processed
Creates a InitEmptyMerkleTree instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a InsertOrAppend instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a ReplaceLeaf instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a TransferAuthority instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Creates a VerifyLeaf instruction.
that will be accessed while the instruction is processed
to provide as instruction data to the program
Attempts to resolve a custom program error from the provided error code.
Attempts to resolve a custom program error from the provided error name, i.e. 'Unauthorized'.
Generated using TypeDoc
Accounts required by the append instruction
[writable] merkleTree
[signer] authority
[] noop