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 63 methods
const ID: u16;
const NAME: &'static str;
const EDITION: u16;
const INCLUSION_FUNCTION_NAME: &'static str;
const GENESIS_TIMESTAMP: i64;
const GENESIS_COINBASE_TARGET: u64;
const GENESIS_PROOF_TARGET: u64;
const CONSENSUS_VERSION_HEIGHTS: [(ConsensusVersion, u32); 3];
const MAX_CERTIFICATES: [(ConsensusVersion, u16); 2];
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 as Environment>::PairingCurve, VarunaHidingMode>>>;
fn get_credits_verifying_key(
function_name: String,
) -> Result<&'static Arc<CircuitVerifyingKey<<Self as Environment>::PairingCurve>>>;
fn inclusion_proving_key( ) -> &'static Arc<CircuitProvingKey<<Self as Environment>::PairingCurve, VarunaHidingMode>>;
fn inclusion_verifying_key( ) -> &'static Arc<CircuitVerifyingKey<<Self as Environment>::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 FiatShamirParameters<Self>;
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>>;
fn commit_bhp512(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>>;
fn commit_bhp768(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>>;
fn commit_bhp1024(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>>;
fn commit_ped64(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>>;
fn commit_ped128(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>>;
fn commit_to_group_bhp256(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>>;
fn commit_to_group_bhp512(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>>;
fn commit_to_group_bhp768(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>>;
fn commit_to_group_bhp1024(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>>;
fn commit_to_group_ped64(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>>;
fn commit_to_group_ped128(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>>;
fn hash_bhp256(input: &[bool]) -> Result<Field<Self>>;
fn hash_bhp512(input: &[bool]) -> Result<Field<Self>>;
fn hash_bhp768(input: &[bool]) -> Result<Field<Self>>;
fn hash_bhp1024(input: &[bool]) -> Result<Field<Self>>;
fn hash_keccak256(input: &[bool]) -> Result<Vec<bool>>;
fn hash_keccak384(input: &[bool]) -> Result<Vec<bool>>;
fn hash_keccak512(input: &[bool]) -> Result<Vec<bool>>;
fn hash_ped64(input: &[bool]) -> Result<Field<Self>>;
fn hash_ped128(input: &[bool]) -> Result<Field<Self>>;
fn hash_psd2(input: &[Field<Self>]) -> Result<Field<Self>>;
fn hash_psd4(input: &[Field<Self>]) -> Result<Field<Self>>;
fn hash_psd8(input: &[Field<Self>]) -> Result<Field<Self>>;
fn hash_sha3_256(input: &[bool]) -> Result<Vec<bool>>;
fn hash_sha3_384(input: &[bool]) -> Result<Vec<bool>>;
fn hash_sha3_512(input: &[bool]) -> Result<Vec<bool>>;
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>>;
fn hash_to_group_bhp512(input: &[bool]) -> Result<Group<Self>>;
fn hash_to_group_bhp768(input: &[bool]) -> Result<Group<Self>>;
fn hash_to_group_bhp1024(input: &[bool]) -> Result<Group<Self>>;
fn hash_to_group_ped64(input: &[bool]) -> Result<Group<Self>>;
fn hash_to_group_ped128(input: &[bool]) -> Result<Group<Self>>;
fn hash_to_group_psd2(input: &[Field<Self>]) -> Result<Group<Self>>;
fn hash_to_group_psd4(input: &[Field<Self>]) -> Result<Group<Self>>;
fn hash_to_group_psd8(input: &[Field<Self>]) -> Result<Group<Self>>;
fn hash_to_scalar_psd2(input: &[Field<Self>]) -> Result<Scalar<Self>>;
fn hash_to_scalar_psd4(input: &[Field<Self>]) -> Result<Scalar<Self>>;
fn hash_to_scalar_psd8(input: &[Field<Self>]) -> Result<Scalar<Self>>;
fn merkle_tree_bhp<const DEPTH: u8>(
leaves: &[Vec<bool>],
) -> Result<BHPMerkleTree<Self, DEPTH>>;
fn merkle_tree_psd<const DEPTH: u8>(
leaves: &[Vec<Field<Self>>],
) -> Result<PoseidonMerkleTree<Self, DEPTH>>;
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;
// Provided methods
fn CONSENSUS_VERSION(seek_height: u32) -> Result<ConsensusVersion> { ... }
fn CONSENSUS_HEIGHT(version: ConsensusVersion) -> Result<u32> { ... }
fn LATEST_MAX_CERTIFICATES() -> Result<u16> { ... }
}
Required Associated Constants§
Sourceconst INCLUSION_FUNCTION_NAME: &'static str
const INCLUSION_FUNCTION_NAME: &'static str
The function name for the inclusion circuit.
Sourceconst GENESIS_TIMESTAMP: i64
const GENESIS_TIMESTAMP: i64
The fixed timestamp of the genesis block.
Sourceconst GENESIS_COINBASE_TARGET: u64
const GENESIS_COINBASE_TARGET: u64
The genesis block coinbase target.
Sourceconst GENESIS_PROOF_TARGET: u64
const GENESIS_PROOF_TARGET: u64
The genesis block proof target.
Sourceconst CONSENSUS_VERSION_HEIGHTS: [(ConsensusVersion, u32); 3]
const CONSENSUS_VERSION_HEIGHTS: [(ConsensusVersion, u32); 3]
A list of (consensus_version, block_height) pairs indicating when each consensus version takes effect.
Documentation for what is changed at each version can be found in N::CONSENSUS_VERSION
Sourceconst MAX_CERTIFICATES: [(ConsensusVersion, u16); 2]
const MAX_CERTIFICATES: [(ConsensusVersion, u16); 2]
A list of (consensus_version, size) pairs indicating the maximum number of validators in a committee.
Provided Associated Constants§
Sourceconst MAX_SOLUTIONS_AS_POWER_OF_TWO: u8 = 2u8
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.
Sourceconst MAX_SOLUTIONS: usize = _
const MAX_SOLUTIONS: usize = _
The maximum number of solutions that can be included per block.
Sourceconst STARTING_SUPPLY: u64 = 1_500_000_000_000_000u64
const STARTING_SUPPLY: u64 = 1_500_000_000_000_000u64
The starting supply of Aleo credits.
Sourceconst DEPLOYMENT_FEE_MULTIPLIER: u64 = 1_000u64
const DEPLOYMENT_FEE_MULTIPLIER: u64 = 1_000u64
The cost in microcredits per byte for the deployment transaction.
Sourceconst EXECUTION_STORAGE_FEE_SCALING_FACTOR: u64 = 5_000u64
const EXECUTION_STORAGE_FEE_SCALING_FACTOR: u64 = 5_000u64
The constant that divides the storage polynomial.
Sourceconst EXECUTION_STORAGE_PENALTY_THRESHOLD: u64 = 5_000u64
const EXECUTION_STORAGE_PENALTY_THRESHOLD: u64 = 5_000u64
The maximum size execution transactions can be before a quadratic storage penalty applies.
Sourceconst SYNTHESIS_FEE_MULTIPLIER: u64 = 25u64
const SYNTHESIS_FEE_MULTIPLIER: u64 = 25u64
The cost in microcredits per constraint for the deployment transaction.
Sourceconst MAX_DEPLOYMENT_VARIABLES: u64 = 1_048_576u64
const MAX_DEPLOYMENT_VARIABLES: u64 = 1_048_576u64
The maximum number of variables in a deployment.
Sourceconst MAX_DEPLOYMENT_CONSTRAINTS: u64 = 1_048_576u64
const MAX_DEPLOYMENT_CONSTRAINTS: u64 = 1_048_576u64
The maximum number of constraints in a deployment.
Sourceconst MAX_FEE: u64 = 1_000_000_000_000_000u64
const MAX_FEE: u64 = 1_000_000_000_000_000u64
The maximum number of microcredits that can be spent as a fee.
Sourceconst TRANSACTION_SPEND_LIMIT: u64 = 100_000_000u64
const TRANSACTION_SPEND_LIMIT: u64 = 100_000_000u64
The maximum number of microcredits that can be spent on a finalize block.
Sourceconst ANCHOR_HEIGHT: u32 = _
const ANCHOR_HEIGHT: u32 = _
The anchor height, defined as the expected number of blocks to reach the coinbase target.
Sourceconst ANCHOR_TIME: u16 = 25u16
const ANCHOR_TIME: u16 = 25u16
The anchor time in seconds.
Sourceconst BLOCK_TIME: u16 = 10u16
const BLOCK_TIME: u16 = 10u16
The expected time per block in seconds.
Sourceconst NUM_BLOCKS_PER_EPOCH: u32 = _
const NUM_BLOCKS_PER_EPOCH: u32 = _
The number of blocks per epoch.
Sourceconst MAX_DATA_ENTRIES: usize = 32usize
const MAX_DATA_ENTRIES: usize = 32usize
The maximum number of entries in data.
Sourceconst MAX_DATA_DEPTH: usize = 32usize
const MAX_DATA_DEPTH: usize = 32usize
The maximum recursive depth of an entry. Note: This value must be strictly less than u8::MAX.
Sourceconst MAX_DATA_SIZE_IN_FIELDS: u32 = _
const MAX_DATA_SIZE_IN_FIELDS: u32 = _
The maximum number of fields in data (must not exceed u16::MAX).
Sourceconst MIN_STRUCT_ENTRIES: usize = 1usize
const MIN_STRUCT_ENTRIES: usize = 1usize
The minimum number of entries in a struct.
Sourceconst MAX_STRUCT_ENTRIES: usize = Self::MAX_DATA_ENTRIES
const MAX_STRUCT_ENTRIES: usize = Self::MAX_DATA_ENTRIES
The maximum number of entries in a struct.
Sourceconst MIN_ARRAY_ELEMENTS: usize = 1usize
const MIN_ARRAY_ELEMENTS: usize = 1usize
The minimum number of elements in an array.
Sourceconst MAX_ARRAY_ELEMENTS: usize = Self::MAX_DATA_ENTRIES
const MAX_ARRAY_ELEMENTS: usize = Self::MAX_DATA_ENTRIES
The maximum number of elements in an array.
Sourceconst MIN_RECORD_ENTRIES: usize = 1usize
const MIN_RECORD_ENTRIES: usize = 1usize
The minimum number of entries in a record.
Sourceconst MAX_RECORD_ENTRIES: usize = _
const MAX_RECORD_ENTRIES: usize = _
The maximum number of entries in a record.
Sourceconst MAX_PROGRAM_SIZE: usize = 100_000usize
const MAX_PROGRAM_SIZE: usize = 100_000usize
The maximum program size by number of characters.
Sourceconst MAX_MAPPINGS: usize = 31usize
const MAX_MAPPINGS: usize = 31usize
The maximum number of mappings in a program.
Sourceconst MAX_FUNCTIONS: usize = 31usize
const MAX_FUNCTIONS: usize = 31usize
The maximum number of functions in a program.
Sourceconst MAX_STRUCTS: usize = _
const MAX_STRUCTS: usize = _
The maximum number of structs in a program.
Sourceconst MAX_RECORDS: usize = _
const MAX_RECORDS: usize = _
The maximum number of records in a program.
Sourceconst MAX_CLOSURES: usize = _
const MAX_CLOSURES: usize = _
The maximum number of closures in a program.
Sourceconst MAX_OPERANDS: usize = Self::MAX_INPUTS
const MAX_OPERANDS: usize = Self::MAX_INPUTS
The maximum number of operands in an instruction.
Sourceconst MAX_INSTRUCTIONS: usize = 65_535usize
const MAX_INSTRUCTIONS: usize = 65_535usize
The maximum number of instructions in a closure or function.
Sourceconst MAX_COMMANDS: usize = 65_535usize
const MAX_COMMANDS: usize = 65_535usize
The maximum number of commands in finalize.
Sourceconst MAX_WRITES: u16 = 16u16
const MAX_WRITES: u16 = 16u16
The maximum number of write commands in finalize.
Sourceconst MAX_INPUTS: usize = 16usize
const MAX_INPUTS: usize = 16usize
The maximum number of inputs per transition.
Sourceconst MAX_OUTPUTS: usize = 16usize
const MAX_OUTPUTS: usize = 16usize
The maximum number of outputs per transition.
Sourceconst MAX_PROGRAM_DEPTH: usize = 64usize
const MAX_PROGRAM_DEPTH: usize = 64usize
The maximum program depth.
Sourceconst MAX_IMPORTS: usize = 64usize
const MAX_IMPORTS: usize = 64usize
The maximum number of imports.
Sourceconst MAX_TRANSACTION_SIZE: usize = 128_000usize
const MAX_TRANSACTION_SIZE: usize = 128_000usize
The maximum number of bytes in a transaction.
Required Associated Types§
Sourcetype RatificationID: Bech32ID<Field<Self>>
type RatificationID: Bech32ID<Field<Self>>
The ratification ID type.
Sourcetype TransactionID: Bech32ID<Field<Self>>
type TransactionID: Bech32ID<Field<Self>>
The transaction ID type.
Sourcetype TransitionID: Bech32ID<Field<Self>>
type TransitionID: Bech32ID<Field<Self>>
The transition ID type.
Sourcetype TransmissionChecksum: IntegerType
type TransmissionChecksum: IntegerType
The transmission checksum type.
Required Methods§
Sourcefn genesis_bytes() -> &'static [u8] ⓘ
fn genesis_bytes() -> &'static [u8] ⓘ
Returns the genesis block bytes.
Sourcefn restrictions_list_as_str() -> &'static str
fn restrictions_list_as_str() -> &'static str
Returns the restrictions list as a JSON-compatible string.
Sourcefn get_credits_proving_key(
function_name: String,
) -> Result<&'static Arc<CircuitProvingKey<<Self as Environment>::PairingCurve, VarunaHidingMode>>>
fn get_credits_proving_key( function_name: String, ) -> Result<&'static Arc<CircuitProvingKey<<Self as Environment>::PairingCurve, VarunaHidingMode>>>
Returns the proving key for the given function name in credits.aleo
.
Sourcefn get_credits_verifying_key(
function_name: String,
) -> Result<&'static Arc<CircuitVerifyingKey<<Self as Environment>::PairingCurve>>>
fn get_credits_verifying_key( function_name: String, ) -> Result<&'static Arc<CircuitVerifyingKey<<Self as Environment>::PairingCurve>>>
Returns the verifying key for the given function name in credits.aleo
.
Sourcefn inclusion_proving_key() -> &'static Arc<CircuitProvingKey<<Self as Environment>::PairingCurve, VarunaHidingMode>>
fn inclusion_proving_key() -> &'static Arc<CircuitProvingKey<<Self as Environment>::PairingCurve, VarunaHidingMode>>
Returns the proving key
for the inclusion circuit.
Sourcefn inclusion_verifying_key() -> &'static Arc<CircuitVerifyingKey<<Self as Environment>::PairingCurve>>
fn inclusion_verifying_key() -> &'static Arc<CircuitVerifyingKey<<Self as Environment>::PairingCurve>>
Returns the verifying key
for the inclusion circuit.
Sourcefn g_scalar_multiply(scalar: &Scalar<Self>) -> Group<Self>
fn g_scalar_multiply(scalar: &Scalar<Self>) -> Group<Self>
Returns the scalar multiplication on the generator G
.
Sourcefn varuna_universal_prover() -> &'static UniversalProver<Self::PairingCurve>
fn varuna_universal_prover() -> &'static UniversalProver<Self::PairingCurve>
Returns the Varuna universal prover.
Sourcefn varuna_universal_verifier() -> &'static UniversalVerifier<Self::PairingCurve>
fn varuna_universal_verifier() -> &'static UniversalVerifier<Self::PairingCurve>
Returns the Varuna universal verifier.
Sourcefn varuna_fs_parameters() -> &'static FiatShamirParameters<Self>
fn varuna_fs_parameters() -> &'static FiatShamirParameters<Self>
Returns the sponge parameters for Varuna.
Sourcefn encryption_domain() -> Field<Self>
fn encryption_domain() -> Field<Self>
Returns the encryption domain as a constant field element.
Sourcefn graph_key_domain() -> Field<Self>
fn graph_key_domain() -> Field<Self>
Returns the graph key domain as a constant field element.
Sourcefn serial_number_domain() -> Field<Self>
fn serial_number_domain() -> Field<Self>
Returns the serial number domain as a constant field element.
Sourcefn commit_bhp256(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>>
fn commit_bhp256( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>>
Returns a BHP commitment with an input hasher of 256-bits and randomizer.
Sourcefn commit_bhp512(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>>
fn commit_bhp512( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>>
Returns a BHP commitment with an input hasher of 512-bits and randomizer.
Sourcefn commit_bhp768(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>>
fn commit_bhp768( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>>
Returns a BHP commitment with an input hasher of 768-bits and randomizer.
Sourcefn commit_bhp1024(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>>
fn commit_bhp1024( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>>
Returns a BHP commitment with an input hasher of 1024-bits and randomizer.
Sourcefn commit_ped64(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>>
fn commit_ped64( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>>
Returns a Pedersen commitment for the given (up to) 64-bit input and randomizer.
Sourcefn commit_ped128(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>>
fn commit_ped128( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Field<Self>>
Returns a Pedersen commitment for the given (up to) 128-bit input and randomizer.
Sourcefn commit_to_group_bhp256(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>>
fn commit_to_group_bhp256( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>>
Returns a BHP commitment with an input hasher of 256-bits and randomizer.
Sourcefn commit_to_group_bhp512(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>>
fn commit_to_group_bhp512( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>>
Returns a BHP commitment with an input hasher of 512-bits and randomizer.
Sourcefn commit_to_group_bhp768(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>>
fn commit_to_group_bhp768( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>>
Returns a BHP commitment with an input hasher of 768-bits and randomizer.
Sourcefn commit_to_group_bhp1024(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>>
fn commit_to_group_bhp1024( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>>
Returns a BHP commitment with an input hasher of 1024-bits and randomizer.
Sourcefn commit_to_group_ped64(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>>
fn commit_to_group_ped64( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>>
Returns a Pedersen commitment for the given (up to) 64-bit input and randomizer.
Sourcefn commit_to_group_ped128(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>>
fn commit_to_group_ped128( input: &[bool], randomizer: &Scalar<Self>, ) -> Result<Group<Self>>
Returns a Pedersen commitment for the given (up to) 128-bit input and randomizer.
Sourcefn hash_bhp256(input: &[bool]) -> Result<Field<Self>>
fn hash_bhp256(input: &[bool]) -> Result<Field<Self>>
Returns the BHP hash with an input hasher of 256-bits.
Sourcefn hash_bhp512(input: &[bool]) -> Result<Field<Self>>
fn hash_bhp512(input: &[bool]) -> Result<Field<Self>>
Returns the BHP hash with an input hasher of 512-bits.
Sourcefn hash_bhp768(input: &[bool]) -> Result<Field<Self>>
fn hash_bhp768(input: &[bool]) -> Result<Field<Self>>
Returns the BHP hash with an input hasher of 768-bits.
Sourcefn hash_bhp1024(input: &[bool]) -> Result<Field<Self>>
fn hash_bhp1024(input: &[bool]) -> Result<Field<Self>>
Returns the BHP hash with an input hasher of 1024-bits.
Sourcefn hash_keccak256(input: &[bool]) -> Result<Vec<bool>>
fn hash_keccak256(input: &[bool]) -> Result<Vec<bool>>
Returns the Keccak hash with a 256-bit output.
Sourcefn hash_keccak384(input: &[bool]) -> Result<Vec<bool>>
fn hash_keccak384(input: &[bool]) -> Result<Vec<bool>>
Returns the Keccak hash with a 384-bit output.
Sourcefn hash_keccak512(input: &[bool]) -> Result<Vec<bool>>
fn hash_keccak512(input: &[bool]) -> Result<Vec<bool>>
Returns the Keccak hash with a 512-bit output.
Sourcefn hash_ped64(input: &[bool]) -> Result<Field<Self>>
fn hash_ped64(input: &[bool]) -> Result<Field<Self>>
Returns the Pedersen hash for a given (up to) 64-bit input.
Sourcefn hash_ped128(input: &[bool]) -> Result<Field<Self>>
fn hash_ped128(input: &[bool]) -> Result<Field<Self>>
Returns the Pedersen hash for a given (up to) 128-bit input.
Sourcefn hash_psd2(input: &[Field<Self>]) -> Result<Field<Self>>
fn hash_psd2(input: &[Field<Self>]) -> Result<Field<Self>>
Returns the Poseidon hash with an input rate of 2.
Sourcefn hash_psd4(input: &[Field<Self>]) -> Result<Field<Self>>
fn hash_psd4(input: &[Field<Self>]) -> Result<Field<Self>>
Returns the Poseidon hash with an input rate of 4.
Sourcefn hash_psd8(input: &[Field<Self>]) -> Result<Field<Self>>
fn hash_psd8(input: &[Field<Self>]) -> Result<Field<Self>>
Returns the Poseidon hash with an input rate of 8.
Sourcefn hash_sha3_256(input: &[bool]) -> Result<Vec<bool>>
fn hash_sha3_256(input: &[bool]) -> Result<Vec<bool>>
Returns the SHA-3 hash with a 256-bit output.
Sourcefn hash_sha3_384(input: &[bool]) -> Result<Vec<bool>>
fn hash_sha3_384(input: &[bool]) -> Result<Vec<bool>>
Returns the SHA-3 hash with a 384-bit output.
Sourcefn hash_sha3_512(input: &[bool]) -> Result<Vec<bool>>
fn hash_sha3_512(input: &[bool]) -> Result<Vec<bool>>
Returns the SHA-3 hash with a 512-bit output.
Sourcefn hash_many_psd2(input: &[Field<Self>], num_outputs: u16) -> Vec<Field<Self>>
fn hash_many_psd2(input: &[Field<Self>], num_outputs: u16) -> Vec<Field<Self>>
Returns the extended Poseidon hash with an input rate of 2.
Sourcefn hash_many_psd4(input: &[Field<Self>], num_outputs: u16) -> Vec<Field<Self>>
fn hash_many_psd4(input: &[Field<Self>], num_outputs: u16) -> Vec<Field<Self>>
Returns the extended Poseidon hash with an input rate of 4.
Sourcefn hash_many_psd8(input: &[Field<Self>], num_outputs: u16) -> Vec<Field<Self>>
fn hash_many_psd8(input: &[Field<Self>], num_outputs: u16) -> Vec<Field<Self>>
Returns the extended Poseidon hash with an input rate of 8.
Sourcefn hash_to_group_bhp256(input: &[bool]) -> Result<Group<Self>>
fn hash_to_group_bhp256(input: &[bool]) -> Result<Group<Self>>
Returns the BHP hash with an input hasher of 256-bits.
Sourcefn hash_to_group_bhp512(input: &[bool]) -> Result<Group<Self>>
fn hash_to_group_bhp512(input: &[bool]) -> Result<Group<Self>>
Returns the BHP hash with an input hasher of 512-bits.
Sourcefn hash_to_group_bhp768(input: &[bool]) -> Result<Group<Self>>
fn hash_to_group_bhp768(input: &[bool]) -> Result<Group<Self>>
Returns the BHP hash with an input hasher of 768-bits.
Sourcefn hash_to_group_bhp1024(input: &[bool]) -> Result<Group<Self>>
fn hash_to_group_bhp1024(input: &[bool]) -> Result<Group<Self>>
Returns the BHP hash with an input hasher of 1024-bits.
Sourcefn hash_to_group_ped64(input: &[bool]) -> Result<Group<Self>>
fn hash_to_group_ped64(input: &[bool]) -> Result<Group<Self>>
Returns the Pedersen hash for a given (up to) 64-bit input.
Sourcefn hash_to_group_ped128(input: &[bool]) -> Result<Group<Self>>
fn hash_to_group_ped128(input: &[bool]) -> Result<Group<Self>>
Returns the Pedersen hash for a given (up to) 128-bit input.
Sourcefn hash_to_group_psd2(input: &[Field<Self>]) -> Result<Group<Self>>
fn hash_to_group_psd2(input: &[Field<Self>]) -> Result<Group<Self>>
Returns the Poseidon hash with an input rate of 2 on the affine curve.
Sourcefn hash_to_group_psd4(input: &[Field<Self>]) -> Result<Group<Self>>
fn hash_to_group_psd4(input: &[Field<Self>]) -> Result<Group<Self>>
Returns the Poseidon hash with an input rate of 4 on the affine curve.
Sourcefn hash_to_group_psd8(input: &[Field<Self>]) -> Result<Group<Self>>
fn hash_to_group_psd8(input: &[Field<Self>]) -> Result<Group<Self>>
Returns the Poseidon hash with an input rate of 8 on the affine curve.
Sourcefn hash_to_scalar_psd2(input: &[Field<Self>]) -> Result<Scalar<Self>>
fn hash_to_scalar_psd2(input: &[Field<Self>]) -> Result<Scalar<Self>>
Returns the Poseidon hash with an input rate of 2 on the scalar field.
Sourcefn hash_to_scalar_psd4(input: &[Field<Self>]) -> Result<Scalar<Self>>
fn hash_to_scalar_psd4(input: &[Field<Self>]) -> Result<Scalar<Self>>
Returns the Poseidon hash with an input rate of 4 on the scalar field.
Sourcefn hash_to_scalar_psd8(input: &[Field<Self>]) -> Result<Scalar<Self>>
fn hash_to_scalar_psd8(input: &[Field<Self>]) -> Result<Scalar<Self>>
Returns the Poseidon hash with an input rate of 8 on the scalar field.
Sourcefn merkle_tree_bhp<const DEPTH: u8>(
leaves: &[Vec<bool>],
) -> Result<BHPMerkleTree<Self, DEPTH>>
fn merkle_tree_bhp<const DEPTH: u8>( leaves: &[Vec<bool>], ) -> Result<BHPMerkleTree<Self, DEPTH>>
Returns a Merkle tree with a BHP leaf hasher of 1024-bits and a BHP path hasher of 512-bits.
Sourcefn merkle_tree_psd<const DEPTH: u8>(
leaves: &[Vec<Field<Self>>],
) -> Result<PoseidonMerkleTree<Self, DEPTH>>
fn merkle_tree_psd<const DEPTH: u8>( leaves: &[Vec<Field<Self>>], ) -> Result<PoseidonMerkleTree<Self, DEPTH>>
Returns a Merkle tree with a Poseidon leaf hasher with input rate of 4 and a Poseidon path hasher with input rate of 2.
Sourcefn verify_merkle_path_bhp<const DEPTH: u8>(
path: &MerklePath<Self, DEPTH>,
root: &Field<Self>,
leaf: &Vec<bool>,
) -> bool
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.
Sourcefn verify_merkle_path_psd<const DEPTH: u8>(
path: &MerklePath<Self, DEPTH>,
root: &Field<Self>,
leaf: &Vec<Field<Self>>,
) -> bool
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.
Provided Methods§
Sourcefn CONSENSUS_VERSION(seek_height: u32) -> Result<ConsensusVersion>
fn CONSENSUS_VERSION(seek_height: u32) -> Result<ConsensusVersion>
Returns the consensus version which is active at the given height.
V1: The initial genesis consensus version.
V2: Update to the block reward and execution cost algorithms.
V3: Update to the number of validators and finalize scope RNG seed.
Sourcefn CONSENSUS_HEIGHT(version: ConsensusVersion) -> Result<u32>
fn CONSENSUS_HEIGHT(version: ConsensusVersion) -> Result<u32>
Returns the height at which a specified consensus version becomes active.
Sourcefn LATEST_MAX_CERTIFICATES() -> Result<u16>
fn LATEST_MAX_CERTIFICATES() -> Result<u16>
Returns the last MAX_CERTIFICATES
value.
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.