snarkvm_console_program

Trait Network

Source
pub trait Network:
    'static
    + Environment
    + Copy
    + Clone
    + Debug
    + Eq
    + PartialEq
    + Hash
    + Serialize
    + DeserializeOwned
    + for<'a> Deserialize<'a>
    + Send
    + Sync {
    type StateRoot: Bech32ID<Field<Self>>;
    type BlockHash: Bech32ID<Field<Self>>;
    type RatificationID: Bech32ID<Field<Self>>;
    type TransactionID: Bech32ID<Field<Self>>;
    type TransitionID: Bech32ID<Field<Self>>;
    type TransmissionChecksum: IntegerType;
Show 48 associated constants and 60 methods const ID: u16; const NAME: &'static str; const EDITION: u16; const CONSENSUS_V2_HEIGHT: u32; const INCLUSION_FUNCTION_NAME: &'static str; const GENESIS_TIMESTAMP: i64; const GENESIS_COINBASE_TARGET: u64; const GENESIS_PROOF_TARGET: u64; const MAX_CERTIFICATES: u16; const MAX_SOLUTIONS_AS_POWER_OF_TWO: u8 = 2u8; const MAX_SOLUTIONS: usize = _; const STARTING_SUPPLY: u64 = 1_500_000_000_000_000u64; const DEPLOYMENT_FEE_MULTIPLIER: u64 = 1_000u64; const EXECUTION_STORAGE_FEE_SCALING_FACTOR: u64 = 5_000u64; const EXECUTION_STORAGE_PENALTY_THRESHOLD: u64 = 5_000u64; const SYNTHESIS_FEE_MULTIPLIER: u64 = 25u64; const MAX_DEPLOYMENT_VARIABLES: u64 = 1_048_576u64; const MAX_DEPLOYMENT_CONSTRAINTS: u64 = 1_048_576u64; const MAX_FEE: u64 = 1_000_000_000_000_000u64; const TRANSACTION_SPEND_LIMIT: u64 = 100_000_000u64; const ANCHOR_HEIGHT: u32 = _; const ANCHOR_TIME: u16 = 25u16; const BLOCK_TIME: u16 = 10u16; const NUM_BLOCKS_PER_EPOCH: u32 = _; const MAX_DATA_ENTRIES: usize = 32usize; const MAX_DATA_DEPTH: usize = 32usize; const MAX_DATA_SIZE_IN_FIELDS: u32 = _; const MIN_STRUCT_ENTRIES: usize = 1usize; const MAX_STRUCT_ENTRIES: usize = Self::MAX_DATA_ENTRIES; const MIN_ARRAY_ELEMENTS: usize = 1usize; const MAX_ARRAY_ELEMENTS: usize = Self::MAX_DATA_ENTRIES; const MIN_RECORD_ENTRIES: usize = 1usize; const MAX_RECORD_ENTRIES: usize = _; const MAX_PROGRAM_SIZE: usize = 100_000usize; const MAX_MAPPINGS: usize = 31usize; const MAX_FUNCTIONS: usize = 31usize; const MAX_STRUCTS: usize = _; const MAX_RECORDS: usize = _; const MAX_CLOSURES: usize = _; const MAX_OPERANDS: usize = Self::MAX_INPUTS; const MAX_INSTRUCTIONS: usize = 65_535usize; const MAX_COMMANDS: usize = 65_535usize; const MAX_WRITES: u16 = 16u16; const MAX_INPUTS: usize = 16usize; const MAX_OUTPUTS: usize = 16usize; const MAX_PROGRAM_DEPTH: usize = 64usize; const MAX_IMPORTS: usize = 64usize; const MAX_TRANSACTION_SIZE: usize = 128_000usize; // Required methods fn genesis_bytes() -> &'static [u8] ; fn restrictions_list_as_str() -> &'static str; fn get_credits_proving_key( function_name: String, ) -> Result<&'static Arc<CircuitProvingKey<Self::PairingCurve, VarunaHidingMode>>, Error>; fn get_credits_verifying_key( function_name: String, ) -> Result<&'static Arc<CircuitVerifyingKey<Self::PairingCurve>>, Error>; fn inclusion_proving_key( ) -> &'static Arc<CircuitProvingKey<Self::PairingCurve, VarunaHidingMode>>; fn inclusion_verifying_key( ) -> &'static Arc<CircuitVerifyingKey<Self::PairingCurve>>; fn g_powers() -> &'static Vec<Group<Self>>; fn g_scalar_multiply(scalar: &Scalar<Self>) -> Group<Self>; fn varuna_universal_prover() -> &'static UniversalProver<Self::PairingCurve>; fn varuna_universal_verifier( ) -> &'static UniversalVerifier<Self::PairingCurve>; fn varuna_fs_parameters( ) -> &'static <PoseidonSponge<<Self::PairingCurve as PairingEngine>::Fq, 2, 1> as AlgebraicSponge<<Self::PairingCurve as PairingEngine>::Fq, 2>>::Parameters; fn encryption_domain() -> Field<Self>; fn graph_key_domain() -> Field<Self>; fn serial_number_domain() -> Field<Self>; fn commit_bhp256( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>, Error>; fn commit_bhp512( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>, Error>; fn commit_bhp768( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>, Error>; fn commit_bhp1024( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>, Error>; fn commit_ped64( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>, Error>; fn commit_ped128( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>, Error>; fn commit_to_group_bhp256( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>, Error>; fn commit_to_group_bhp512( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>, Error>; fn commit_to_group_bhp768( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>, Error>; fn commit_to_group_bhp1024( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>, Error>; fn commit_to_group_ped64( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>, Error>; fn commit_to_group_ped128( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>, Error>; fn hash_bhp256(input: &[bool]) -> Result<Field<Self>, Error>; fn hash_bhp512(input: &[bool]) -> Result<Field<Self>, Error>; fn hash_bhp768(input: &[bool]) -> Result<Field<Self>, Error>; fn hash_bhp1024(input: &[bool]) -> Result<Field<Self>, Error>; fn hash_keccak256(input: &[bool]) -> Result<Vec<bool>, Error>; fn hash_keccak384(input: &[bool]) -> Result<Vec<bool>, Error>; fn hash_keccak512(input: &[bool]) -> Result<Vec<bool>, Error>; fn hash_ped64(input: &[bool]) -> Result<Field<Self>, Error>; fn hash_ped128(input: &[bool]) -> Result<Field<Self>, Error>; fn hash_psd2(input: &[Field<Self>]) -> Result<Field<Self>, Error>; fn hash_psd4(input: &[Field<Self>]) -> Result<Field<Self>, Error>; fn hash_psd8(input: &[Field<Self>]) -> Result<Field<Self>, Error>; fn hash_sha3_256(input: &[bool]) -> Result<Vec<bool>, Error>; fn hash_sha3_384(input: &[bool]) -> Result<Vec<bool>, Error>; fn hash_sha3_512(input: &[bool]) -> Result<Vec<bool>, Error>; fn hash_many_psd2( input: &[Field<Self>], num_outputs: u16, ) -> Vec<Field<Self>>; fn hash_many_psd4( input: &[Field<Self>], num_outputs: u16, ) -> Vec<Field<Self>>; fn hash_many_psd8( input: &[Field<Self>], num_outputs: u16, ) -> Vec<Field<Self>>; fn hash_to_group_bhp256(input: &[bool]) -> Result<Group<Self>, Error>; fn hash_to_group_bhp512(input: &[bool]) -> Result<Group<Self>, Error>; fn hash_to_group_bhp768(input: &[bool]) -> Result<Group<Self>, Error>; fn hash_to_group_bhp1024(input: &[bool]) -> Result<Group<Self>, Error>; fn hash_to_group_ped64(input: &[bool]) -> Result<Group<Self>, Error>; fn hash_to_group_ped128(input: &[bool]) -> Result<Group<Self>, Error>; fn hash_to_group_psd2(input: &[Field<Self>]) -> Result<Group<Self>, Error>; fn hash_to_group_psd4(input: &[Field<Self>]) -> Result<Group<Self>, Error>; fn hash_to_group_psd8(input: &[Field<Self>]) -> Result<Group<Self>, Error>; fn hash_to_scalar_psd2(input: &[Field<Self>]) -> Result<Scalar<Self>, Error>; fn hash_to_scalar_psd4(input: &[Field<Self>]) -> Result<Scalar<Self>, Error>; fn hash_to_scalar_psd8(input: &[Field<Self>]) -> Result<Scalar<Self>, Error>; fn merkle_tree_bhp<const DEPTH: u8>( leaves: &[Vec<bool>], ) -> Result<MerkleTree<Self, BHP<Self, 8, 54>, BHP<Self, 6, 43>, DEPTH>, Error>; fn merkle_tree_psd<const DEPTH: u8>( leaves: &[Vec<Field<Self>>], ) -> Result<MerkleTree<Self, Poseidon<Self, 4>, Poseidon<Self, 2>, DEPTH>, Error>; fn verify_merkle_path_bhp<const DEPTH: u8>( path: &MerklePath<Self, DEPTH>, root: &Field<Self>, leaf: &Vec<bool>, ) -> bool; fn verify_merkle_path_psd<const DEPTH: u8>( path: &MerklePath<Self, DEPTH>, root: &Field<Self>, leaf: &Vec<Field<Self>>, ) -> bool;
}

Required Associated Constants§

Source

const ID: u16

The network ID.

Source

const NAME: &'static str

The network name.

Source

const EDITION: u16

The network edition.

Source

const CONSENSUS_V2_HEIGHT: u32

The block height from which consensus V2 rules apply.

Source

const INCLUSION_FUNCTION_NAME: &'static str

The function name for the inclusion circuit.

Source

const GENESIS_TIMESTAMP: i64

The fixed timestamp of the genesis block.

Source

const GENESIS_COINBASE_TARGET: u64

The genesis block coinbase target.

Source

const GENESIS_PROOF_TARGET: u64

The genesis block proof target.

Source

const MAX_CERTIFICATES: u16

The maximum number of certificates in a batch.

Provided Associated Constants§

Source

const MAX_SOLUTIONS_AS_POWER_OF_TWO: u8 = 2u8

The maximum number of solutions that can be included per block as a power of 2.

Source

const MAX_SOLUTIONS: usize = _

The maximum number of solutions that can be included per block.

Source

const STARTING_SUPPLY: u64 = 1_500_000_000_000_000u64

The starting supply of Aleo credits.

Source

const DEPLOYMENT_FEE_MULTIPLIER: u64 = 1_000u64

The cost in microcredits per byte for the deployment transaction.

Source

const EXECUTION_STORAGE_FEE_SCALING_FACTOR: u64 = 5_000u64

The constant that divides the storage polynomial.

Source

const EXECUTION_STORAGE_PENALTY_THRESHOLD: u64 = 5_000u64

The maximum size execution transactions can be before a quadratic storage penalty applies.

Source

const SYNTHESIS_FEE_MULTIPLIER: u64 = 25u64

The cost in microcredits per constraint for the deployment transaction.

Source

const MAX_DEPLOYMENT_VARIABLES: u64 = 1_048_576u64

The maximum number of variables in a deployment.

Source

const MAX_DEPLOYMENT_CONSTRAINTS: u64 = 1_048_576u64

The maximum number of constraints in a deployment.

Source

const MAX_FEE: u64 = 1_000_000_000_000_000u64

The maximum number of microcredits that can be spent as a fee.

Source

const TRANSACTION_SPEND_LIMIT: u64 = 100_000_000u64

The maximum number of microcredits that can be spent on a finalize block.

Source

const ANCHOR_HEIGHT: u32 = _

The anchor height, defined as the expected number of blocks to reach the coinbase target.

Source

const ANCHOR_TIME: u16 = 25u16

The anchor time in seconds.

Source

const BLOCK_TIME: u16 = 10u16

The expected time per block in seconds.

Source

const NUM_BLOCKS_PER_EPOCH: u32 = _

The number of blocks per epoch.

Source

const MAX_DATA_ENTRIES: usize = 32usize

The maximum number of entries in data.

Source

const MAX_DATA_DEPTH: usize = 32usize

The maximum recursive depth of an entry. Note: This value must be strictly less than u8::MAX.

Source

const MAX_DATA_SIZE_IN_FIELDS: u32 = _

The maximum number of fields in data (must not exceed u16::MAX).

Source

const MIN_STRUCT_ENTRIES: usize = 1usize

The minimum number of entries in a struct.

Source

const MAX_STRUCT_ENTRIES: usize = Self::MAX_DATA_ENTRIES

The maximum number of entries in a struct.

Source

const MIN_ARRAY_ELEMENTS: usize = 1usize

The minimum number of elements in an array.

Source

const MAX_ARRAY_ELEMENTS: usize = Self::MAX_DATA_ENTRIES

The maximum number of elements in an array.

Source

const MIN_RECORD_ENTRIES: usize = 1usize

The minimum number of entries in a record.

Source

const MAX_RECORD_ENTRIES: usize = _

The maximum number of entries in a record.

Source

const MAX_PROGRAM_SIZE: usize = 100_000usize

The maximum program size by number of characters.

Source

const MAX_MAPPINGS: usize = 31usize

The maximum number of mappings in a program.

Source

const MAX_FUNCTIONS: usize = 31usize

The maximum number of functions in a program.

Source

const MAX_STRUCTS: usize = _

The maximum number of structs in a program.

Source

const MAX_RECORDS: usize = _

The maximum number of records in a program.

Source

const MAX_CLOSURES: usize = _

The maximum number of closures in a program.

Source

const MAX_OPERANDS: usize = Self::MAX_INPUTS

The maximum number of operands in an instruction.

Source

const MAX_INSTRUCTIONS: usize = 65_535usize

The maximum number of instructions in a closure or function.

Source

const MAX_COMMANDS: usize = 65_535usize

The maximum number of commands in finalize.

Source

const MAX_WRITES: u16 = 16u16

The maximum number of write commands in finalize.

Source

const MAX_INPUTS: usize = 16usize

The maximum number of inputs per transition.

Source

const MAX_OUTPUTS: usize = 16usize

The maximum number of outputs per transition.

Source

const MAX_PROGRAM_DEPTH: usize = 64usize

The maximum program depth.

Source

const MAX_IMPORTS: usize = 64usize

The maximum number of imports.

Source

const MAX_TRANSACTION_SIZE: usize = 128_000usize

The maximum number of bytes in a transaction.

Required Associated Types§

Source

type StateRoot: Bech32ID<Field<Self>>

The state root type.

Source

type BlockHash: Bech32ID<Field<Self>>

The block hash type.

Source

type RatificationID: Bech32ID<Field<Self>>

The ratification ID type.

Source

type TransactionID: Bech32ID<Field<Self>>

The transaction ID type.

Source

type TransitionID: Bech32ID<Field<Self>>

The transition ID type.

Source

type TransmissionChecksum: IntegerType

The transmission checksum type.

Required Methods§

Source

fn genesis_bytes() -> &'static [u8]

Returns the genesis block bytes.

Source

fn restrictions_list_as_str() -> &'static str

Returns the restrictions list as a JSON-compatible string.

Source

fn get_credits_proving_key( function_name: String, ) -> Result<&'static Arc<CircuitProvingKey<Self::PairingCurve, VarunaHidingMode>>, Error>

Returns the proving key for the given function name in credits.aleo.

Source

fn get_credits_verifying_key( function_name: String, ) -> Result<&'static Arc<CircuitVerifyingKey<Self::PairingCurve>>, Error>

Returns the verifying key for the given function name in credits.aleo.

Source

fn inclusion_proving_key() -> &'static Arc<CircuitProvingKey<Self::PairingCurve, VarunaHidingMode>>

Returns the proving key for the inclusion circuit.

Source

fn inclusion_verifying_key() -> &'static Arc<CircuitVerifyingKey<Self::PairingCurve>>

Returns the verifying key for the inclusion circuit.

Source

fn g_powers() -> &'static Vec<Group<Self>>

Returns the powers of G.

Source

fn g_scalar_multiply(scalar: &Scalar<Self>) -> Group<Self>

Returns the scalar multiplication on the generator G.

Source

fn varuna_universal_prover() -> &'static UniversalProver<Self::PairingCurve>

Returns the Varuna universal prover.

Source

fn varuna_universal_verifier() -> &'static UniversalVerifier<Self::PairingCurve>

Returns the Varuna universal verifier.

Source

fn varuna_fs_parameters() -> &'static <PoseidonSponge<<Self::PairingCurve as PairingEngine>::Fq, 2, 1> as AlgebraicSponge<<Self::PairingCurve as PairingEngine>::Fq, 2>>::Parameters

Returns the sponge parameters for Varuna.

Source

fn encryption_domain() -> Field<Self>

Returns the encryption domain as a constant field element.

Source

fn graph_key_domain() -> Field<Self>

Returns the graph key domain as a constant field element.

Source

fn serial_number_domain() -> Field<Self>

Returns the serial number domain as a constant field element.

Source

fn commit_bhp256( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>, Error>

Returns a BHP commitment with an input hasher of 256-bits and randomizer.

Source

fn commit_bhp512( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>, Error>

Returns a BHP commitment with an input hasher of 512-bits and randomizer.

Source

fn commit_bhp768( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>, Error>

Returns a BHP commitment with an input hasher of 768-bits and randomizer.

Source

fn commit_bhp1024( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>, Error>

Returns a BHP commitment with an input hasher of 1024-bits and randomizer.

Source

fn commit_ped64( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>, Error>

Returns a Pedersen commitment for the given (up to) 64-bit input and randomizer.

Source

fn commit_ped128( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>, Error>

Returns a Pedersen commitment for the given (up to) 128-bit input and randomizer.

Source

fn commit_to_group_bhp256( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>, Error>

Returns a BHP commitment with an input hasher of 256-bits and randomizer.

Source

fn commit_to_group_bhp512( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>, Error>

Returns a BHP commitment with an input hasher of 512-bits and randomizer.

Source

fn commit_to_group_bhp768( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>, Error>

Returns a BHP commitment with an input hasher of 768-bits and randomizer.

Source

fn commit_to_group_bhp1024( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>, Error>

Returns a BHP commitment with an input hasher of 1024-bits and randomizer.

Source

fn commit_to_group_ped64( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>, Error>

Returns a Pedersen commitment for the given (up to) 64-bit input and randomizer.

Source

fn commit_to_group_ped128( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>, Error>

Returns a Pedersen commitment for the given (up to) 128-bit input and randomizer.

Source

fn hash_bhp256(input: &[bool]) -> Result<Field<Self>, Error>

Returns the BHP hash with an input hasher of 256-bits.

Source

fn hash_bhp512(input: &[bool]) -> Result<Field<Self>, Error>

Returns the BHP hash with an input hasher of 512-bits.

Source

fn hash_bhp768(input: &[bool]) -> Result<Field<Self>, Error>

Returns the BHP hash with an input hasher of 768-bits.

Source

fn hash_bhp1024(input: &[bool]) -> Result<Field<Self>, Error>

Returns the BHP hash with an input hasher of 1024-bits.

Source

fn hash_keccak256(input: &[bool]) -> Result<Vec<bool>, Error>

Returns the Keccak hash with a 256-bit output.

Source

fn hash_keccak384(input: &[bool]) -> Result<Vec<bool>, Error>

Returns the Keccak hash with a 384-bit output.

Source

fn hash_keccak512(input: &[bool]) -> Result<Vec<bool>, Error>

Returns the Keccak hash with a 512-bit output.

Source

fn hash_ped64(input: &[bool]) -> Result<Field<Self>, Error>

Returns the Pedersen hash for a given (up to) 64-bit input.

Source

fn hash_ped128(input: &[bool]) -> Result<Field<Self>, Error>

Returns the Pedersen hash for a given (up to) 128-bit input.

Source

fn hash_psd2(input: &[Field<Self>]) -> Result<Field<Self>, Error>

Returns the Poseidon hash with an input rate of 2.

Source

fn hash_psd4(input: &[Field<Self>]) -> Result<Field<Self>, Error>

Returns the Poseidon hash with an input rate of 4.

Source

fn hash_psd8(input: &[Field<Self>]) -> Result<Field<Self>, Error>

Returns the Poseidon hash with an input rate of 8.

Source

fn hash_sha3_256(input: &[bool]) -> Result<Vec<bool>, Error>

Returns the SHA-3 hash with a 256-bit output.

Source

fn hash_sha3_384(input: &[bool]) -> Result<Vec<bool>, Error>

Returns the SHA-3 hash with a 384-bit output.

Source

fn hash_sha3_512(input: &[bool]) -> Result<Vec<bool>, Error>

Returns the SHA-3 hash with a 512-bit output.

Source

fn hash_many_psd2(input: &[Field<Self>], num_outputs: u16) -> Vec<Field<Self>>

Returns the extended Poseidon hash with an input rate of 2.

Source

fn hash_many_psd4(input: &[Field<Self>], num_outputs: u16) -> Vec<Field<Self>>

Returns the extended Poseidon hash with an input rate of 4.

Source

fn hash_many_psd8(input: &[Field<Self>], num_outputs: u16) -> Vec<Field<Self>>

Returns the extended Poseidon hash with an input rate of 8.

Source

fn hash_to_group_bhp256(input: &[bool]) -> Result<Group<Self>, Error>

Returns the BHP hash with an input hasher of 256-bits.

Source

fn hash_to_group_bhp512(input: &[bool]) -> Result<Group<Self>, Error>

Returns the BHP hash with an input hasher of 512-bits.

Source

fn hash_to_group_bhp768(input: &[bool]) -> Result<Group<Self>, Error>

Returns the BHP hash with an input hasher of 768-bits.

Source

fn hash_to_group_bhp1024(input: &[bool]) -> Result<Group<Self>, Error>

Returns the BHP hash with an input hasher of 1024-bits.

Source

fn hash_to_group_ped64(input: &[bool]) -> Result<Group<Self>, Error>

Returns the Pedersen hash for a given (up to) 64-bit input.

Source

fn hash_to_group_ped128(input: &[bool]) -> Result<Group<Self>, Error>

Returns the Pedersen hash for a given (up to) 128-bit input.

Source

fn hash_to_group_psd2(input: &[Field<Self>]) -> Result<Group<Self>, Error>

Returns the Poseidon hash with an input rate of 2 on the affine curve.

Source

fn hash_to_group_psd4(input: &[Field<Self>]) -> Result<Group<Self>, Error>

Returns the Poseidon hash with an input rate of 4 on the affine curve.

Source

fn hash_to_group_psd8(input: &[Field<Self>]) -> Result<Group<Self>, Error>

Returns the Poseidon hash with an input rate of 8 on the affine curve.

Source

fn hash_to_scalar_psd2(input: &[Field<Self>]) -> Result<Scalar<Self>, Error>

Returns the Poseidon hash with an input rate of 2 on the scalar field.

Source

fn hash_to_scalar_psd4(input: &[Field<Self>]) -> Result<Scalar<Self>, Error>

Returns the Poseidon hash with an input rate of 4 on the scalar field.

Source

fn hash_to_scalar_psd8(input: &[Field<Self>]) -> Result<Scalar<Self>, Error>

Returns the Poseidon hash with an input rate of 8 on the scalar field.

Source

fn merkle_tree_bhp<const DEPTH: u8>( leaves: &[Vec<bool>], ) -> Result<MerkleTree<Self, BHP<Self, 8, 54>, BHP<Self, 6, 43>, DEPTH>, Error>

Returns a Merkle tree with a BHP leaf hasher of 1024-bits and a BHP path hasher of 512-bits.

Source

fn merkle_tree_psd<const DEPTH: u8>( leaves: &[Vec<Field<Self>>], ) -> Result<MerkleTree<Self, Poseidon<Self, 4>, Poseidon<Self, 2>, DEPTH>, Error>

Returns a Merkle tree with a Poseidon leaf hasher with input rate of 4 and a Poseidon path hasher with input rate of 2.

Source

fn verify_merkle_path_bhp<const DEPTH: u8>( path: &MerklePath<Self, DEPTH>, root: &Field<Self>, leaf: &Vec<bool>, ) -> bool

Returns true if the given Merkle path is valid for the given root and leaf.

Source

fn verify_merkle_path_psd<const DEPTH: u8>( path: &MerklePath<Self, DEPTH>, root: &Field<Self>, leaf: &Vec<Field<Self>>, ) -> bool

Returns true if the given Merkle path is valid for the given root and leaf.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl Network for CanaryV0

Source§

const CONSENSUS_V2_HEIGHT: u32 = 2_900_000u32

Source§

const EDITION: u16 = 0u16

Source§

const GENESIS_COINBASE_TARGET: u64 = 536_870_911u64

Source§

const GENESIS_PROOF_TARGET: u64 = 134_217_728u64

Source§

const GENESIS_TIMESTAMP: i64 = 1_715_776_496i64

Source§

const ID: u16 = 2u16

Source§

const INCLUSION_FUNCTION_NAME: &'static str = MainnetV0::INCLUSION_FUNCTION_NAME

Source§

const MAX_CERTIFICATES: u16 = 100u16

Source§

const NAME: &'static str = "Aleo Canary (v0)"

Source§

type BlockHash = AleoID<Field<CanaryV0>, snarkvm_console_network::::canary_v0::{impl#2}::BlockHash::{constant#0}>

Source§

type RatificationID = AleoID<Field<CanaryV0>, snarkvm_console_network::::canary_v0::{impl#2}::RatificationID::{constant#0}>

Source§

type StateRoot = AleoID<Field<CanaryV0>, snarkvm_console_network::::canary_v0::{impl#2}::StateRoot::{constant#0}>

Source§

type TransactionID = AleoID<Field<CanaryV0>, snarkvm_console_network::::canary_v0::{impl#2}::TransactionID::{constant#0}>

Source§

type TransitionID = AleoID<Field<CanaryV0>, snarkvm_console_network::::canary_v0::{impl#2}::TransitionID::{constant#0}>

Source§

type TransmissionChecksum = u128

Source§

impl Network for MainnetV0

Source§

const CONSENSUS_V2_HEIGHT: u32 = 2_800_000u32

Source§

const EDITION: u16 = 0u16

Source§

const GENESIS_COINBASE_TARGET: u64 = 536_870_911u64

Source§

const GENESIS_PROOF_TARGET: u64 = 134_217_728u64

Source§

const GENESIS_TIMESTAMP: i64 = 1_725_462_000i64

Source§

const ID: u16 = 0u16

Source§

const INCLUSION_FUNCTION_NAME: &'static str = snarkvm_parameters::mainnet::NETWORK_INCLUSION_FUNCTION_NAME

Source§

const MAX_CERTIFICATES: u16 = 16u16

Source§

const NAME: &'static str = "Aleo Mainnet (v0)"

Source§

type BlockHash = AleoID<Field<MainnetV0>, snarkvm_console_network::::mainnet_v0::{impl#2}::BlockHash::{constant#0}>

Source§

type RatificationID = AleoID<Field<MainnetV0>, snarkvm_console_network::::mainnet_v0::{impl#2}::RatificationID::{constant#0}>

Source§

type StateRoot = AleoID<Field<MainnetV0>, snarkvm_console_network::::mainnet_v0::{impl#2}::StateRoot::{constant#0}>

Source§

type TransactionID = AleoID<Field<MainnetV0>, snarkvm_console_network::::mainnet_v0::{impl#2}::TransactionID::{constant#0}>

Source§

type TransitionID = AleoID<Field<MainnetV0>, snarkvm_console_network::::mainnet_v0::{impl#2}::TransitionID::{constant#0}>

Source§

type TransmissionChecksum = u128

Source§

impl Network for TestnetV0

Source§

const CONSENSUS_V2_HEIGHT: u32 = 2_950_000u32

Source§

const EDITION: u16 = 0u16

Source§

const GENESIS_COINBASE_TARGET: u64 = 536_870_911u64

Source§

const GENESIS_PROOF_TARGET: u64 = 134_217_728u64

Source§

const GENESIS_TIMESTAMP: i64 = 1_715_776_496i64

Source§

const ID: u16 = 1u16

Source§

const INCLUSION_FUNCTION_NAME: &'static str = MainnetV0::INCLUSION_FUNCTION_NAME

Source§

const MAX_CERTIFICATES: u16 = 100u16

Source§

const NAME: &'static str = "Aleo Testnet (v0)"

Source§

type BlockHash = AleoID<Field<TestnetV0>, snarkvm_console_network::::testnet_v0::{impl#2}::BlockHash::{constant#0}>

Source§

type RatificationID = AleoID<Field<TestnetV0>, snarkvm_console_network::::testnet_v0::{impl#2}::RatificationID::{constant#0}>

Source§

type StateRoot = AleoID<Field<TestnetV0>, snarkvm_console_network::::testnet_v0::{impl#2}::StateRoot::{constant#0}>

Source§

type TransactionID = AleoID<Field<TestnetV0>, snarkvm_console_network::::testnet_v0::{impl#2}::TransactionID::{constant#0}>

Source§

type TransitionID = AleoID<Field<TestnetV0>, snarkvm_console_network::::testnet_v0::{impl#2}::TransitionID::{constant#0}>

Source§

type TransmissionChecksum = u128