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>>;
Show 33 associated constants and 59 methods
const ID: u16;
const NAME: &'static str;
const EDITION: u16;
const INCLUSION_FUNCTION_NAME: &'static str;
const GENESIS_TIMESTAMP: i64 = 1_696_118_400i64;
const GENESIS_COINBASE_TARGET: u64 = 4_294_967_295u64;
const GENESIS_PROOF_TARGET: u64 = 33_554_432u64;
const STARTING_SUPPLY: u64 = 1_500_000_000_000_000u64;
const DEPLOYMENT_FEE_MULTIPLIER: u64 = 1_000u64;
const MAX_FEE: u64 = 1_000_000_000_000_000u64;
const ANCHOR_HEIGHT: u32 = _;
const ANCHOR_TIME: u16 = 25u16;
const BLOCK_TIME: u16 = 10u16;
const COINBASE_PUZZLE_DEGREE: u32 = 8_191u32;
const MAX_SOLUTIONS: usize = 256usize;
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_MAPPINGS: usize = 31usize;
const MAX_FUNCTIONS: usize = 31usize;
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;
// Required methods
fn genesis_bytes() -> &'static [u8] ⓘ;
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§
Sourceconst INCLUSION_FUNCTION_NAME: &'static str
const INCLUSION_FUNCTION_NAME: &'static str
The function name for the inclusion circuit.
Provided Associated Constants§
Sourceconst GENESIS_TIMESTAMP: i64 = 1_696_118_400i64
const GENESIS_TIMESTAMP: i64 = 1_696_118_400i64
The fixed timestamp of the genesis block.
Sourceconst GENESIS_COINBASE_TARGET: u64 = 4_294_967_295u64
const GENESIS_COINBASE_TARGET: u64 = 4_294_967_295u64
The genesis block coinbase target.
Sourceconst GENESIS_PROOF_TARGET: u64 = 33_554_432u64
const GENESIS_PROOF_TARGET: u64 = 33_554_432u64
The genesis block proof target.
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 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 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 COINBASE_PUZZLE_DEGREE: u32 = 8_191u32
const COINBASE_PUZZLE_DEGREE: u32 = 8_191u32
The coinbase puzzle degree.
Sourceconst MAX_SOLUTIONS: usize = 256usize
const MAX_SOLUTIONS: usize = 256usize
The maximum number of solutions that can be included per block.
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_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_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.
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.
Required Methods§
Sourcefn genesis_bytes() -> &'static [u8] ⓘ
fn genesis_bytes() -> &'static [u8] ⓘ
Returns the genesis block bytes.
Sourcefn get_credits_proving_key(
function_name: String,
) -> Result<&'static Arc<CircuitProvingKey<Self::PairingCurve, VarunaHidingMode>>, Error>
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
.
Sourcefn get_credits_verifying_key(
function_name: String,
) -> Result<&'static Arc<CircuitVerifyingKey<Self::PairingCurve>>, Error>
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
.
Sourcefn inclusion_proving_key() -> &'static Arc<CircuitProvingKey<Self::PairingCurve, VarunaHidingMode>>
fn inclusion_proving_key() -> &'static Arc<CircuitProvingKey<Self::PairingCurve, VarunaHidingMode>>
Returns the proving key
for the inclusion circuit.
Sourcefn inclusion_verifying_key() -> &'static Arc<CircuitVerifyingKey<Self::PairingCurve>>
fn inclusion_verifying_key() -> &'static Arc<CircuitVerifyingKey<Self::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 <PoseidonSponge<<Self::PairingCurve as PairingEngine>::Fq, 2, 1> as AlgebraicSponge<<Self::PairingCurve as PairingEngine>::Fq, 2>>::Parameters
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.
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>, Error>
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.
Sourcefn commit_bhp512(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>, Error>
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.
Sourcefn commit_bhp768(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>, Error>
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.
Sourcefn commit_bhp1024(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>, Error>
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.
Sourcefn commit_ped64(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>, Error>
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.
Sourcefn commit_ped128(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Field<Self>, Error>
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.
Sourcefn commit_to_group_bhp256(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>, Error>
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.
Sourcefn commit_to_group_bhp512(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>, Error>
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.
Sourcefn commit_to_group_bhp768(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>, Error>
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.
Sourcefn commit_to_group_bhp1024(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>, Error>
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.
Sourcefn commit_to_group_ped64(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>, Error>
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.
Sourcefn commit_to_group_ped128(
input: &[bool],
randomizer: &Scalar<Self>,
) -> Result<Group<Self>, Error>
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.
Sourcefn hash_bhp256(input: &[bool]) -> Result<Field<Self>, Error>
fn hash_bhp256(input: &[bool]) -> Result<Field<Self>, Error>
Returns the BHP hash with an input hasher of 256-bits.
Sourcefn hash_bhp512(input: &[bool]) -> Result<Field<Self>, Error>
fn hash_bhp512(input: &[bool]) -> Result<Field<Self>, Error>
Returns the BHP hash with an input hasher of 512-bits.
Sourcefn hash_bhp768(input: &[bool]) -> Result<Field<Self>, Error>
fn hash_bhp768(input: &[bool]) -> Result<Field<Self>, Error>
Returns the BHP hash with an input hasher of 768-bits.
Sourcefn hash_bhp1024(input: &[bool]) -> Result<Field<Self>, Error>
fn hash_bhp1024(input: &[bool]) -> Result<Field<Self>, Error>
Returns the BHP hash with an input hasher of 1024-bits.
Sourcefn hash_keccak256(input: &[bool]) -> Result<Vec<bool>, Error>
fn hash_keccak256(input: &[bool]) -> Result<Vec<bool>, Error>
Returns the Keccak hash with a 256-bit output.
Sourcefn hash_keccak384(input: &[bool]) -> Result<Vec<bool>, Error>
fn hash_keccak384(input: &[bool]) -> Result<Vec<bool>, Error>
Returns the Keccak hash with a 384-bit output.
Sourcefn hash_keccak512(input: &[bool]) -> Result<Vec<bool>, Error>
fn hash_keccak512(input: &[bool]) -> Result<Vec<bool>, Error>
Returns the Keccak hash with a 512-bit output.
Sourcefn hash_ped64(input: &[bool]) -> Result<Field<Self>, Error>
fn hash_ped64(input: &[bool]) -> Result<Field<Self>, Error>
Returns the Pedersen hash for a given (up to) 64-bit input.
Sourcefn hash_ped128(input: &[bool]) -> Result<Field<Self>, Error>
fn hash_ped128(input: &[bool]) -> Result<Field<Self>, Error>
Returns the Pedersen hash for a given (up to) 128-bit input.
Sourcefn hash_psd2(input: &[Field<Self>]) -> Result<Field<Self>, Error>
fn hash_psd2(input: &[Field<Self>]) -> Result<Field<Self>, Error>
Returns the Poseidon hash with an input rate of 2.
Sourcefn hash_psd4(input: &[Field<Self>]) -> Result<Field<Self>, Error>
fn hash_psd4(input: &[Field<Self>]) -> Result<Field<Self>, Error>
Returns the Poseidon hash with an input rate of 4.
Sourcefn hash_psd8(input: &[Field<Self>]) -> Result<Field<Self>, Error>
fn hash_psd8(input: &[Field<Self>]) -> Result<Field<Self>, Error>
Returns the Poseidon hash with an input rate of 8.
Sourcefn hash_sha3_256(input: &[bool]) -> Result<Vec<bool>, Error>
fn hash_sha3_256(input: &[bool]) -> Result<Vec<bool>, Error>
Returns the SHA-3 hash with a 256-bit output.
Sourcefn hash_sha3_384(input: &[bool]) -> Result<Vec<bool>, Error>
fn hash_sha3_384(input: &[bool]) -> Result<Vec<bool>, Error>
Returns the SHA-3 hash with a 384-bit output.
Sourcefn hash_sha3_512(input: &[bool]) -> Result<Vec<bool>, Error>
fn hash_sha3_512(input: &[bool]) -> Result<Vec<bool>, Error>
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>, Error>
fn hash_to_group_bhp256(input: &[bool]) -> Result<Group<Self>, Error>
Returns the BHP hash with an input hasher of 256-bits.
Sourcefn hash_to_group_bhp512(input: &[bool]) -> Result<Group<Self>, Error>
fn hash_to_group_bhp512(input: &[bool]) -> Result<Group<Self>, Error>
Returns the BHP hash with an input hasher of 512-bits.
Sourcefn hash_to_group_bhp768(input: &[bool]) -> Result<Group<Self>, Error>
fn hash_to_group_bhp768(input: &[bool]) -> Result<Group<Self>, Error>
Returns the BHP hash with an input hasher of 768-bits.
Sourcefn hash_to_group_bhp1024(input: &[bool]) -> Result<Group<Self>, Error>
fn hash_to_group_bhp1024(input: &[bool]) -> Result<Group<Self>, Error>
Returns the BHP hash with an input hasher of 1024-bits.
Sourcefn hash_to_group_ped64(input: &[bool]) -> Result<Group<Self>, Error>
fn hash_to_group_ped64(input: &[bool]) -> Result<Group<Self>, Error>
Returns the Pedersen hash for a given (up to) 64-bit input.
Sourcefn hash_to_group_ped128(input: &[bool]) -> Result<Group<Self>, Error>
fn hash_to_group_ped128(input: &[bool]) -> Result<Group<Self>, Error>
Returns the Pedersen hash for a given (up to) 128-bit input.
Sourcefn hash_to_group_psd2(input: &[Field<Self>]) -> Result<Group<Self>, Error>
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.
Sourcefn hash_to_group_psd4(input: &[Field<Self>]) -> Result<Group<Self>, Error>
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.
Sourcefn hash_to_group_psd8(input: &[Field<Self>]) -> Result<Group<Self>, Error>
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.
Sourcefn hash_to_scalar_psd2(input: &[Field<Self>]) -> Result<Scalar<Self>, Error>
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.
Sourcefn hash_to_scalar_psd4(input: &[Field<Self>]) -> Result<Scalar<Self>, Error>
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.
Sourcefn hash_to_scalar_psd8(input: &[Field<Self>]) -> Result<Scalar<Self>, Error>
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.
Sourcefn 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_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.
Sourcefn merkle_tree_psd<const DEPTH: u8>(
leaves: &[Vec<Field<Self>>],
) -> Result<MerkleTree<Self, Poseidon<Self, 4>, Poseidon<Self, 2>, DEPTH>, Error>
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.
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.
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.