Trait snarkvm_console_network::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 TransactionID: Bech32ID<Field<Self>>;
type TransitionID: Bech32ID<Field<Self>>;
Show 11 associated constants and 37 methods
const ID: u16;
const NAME: &'static str;
const EDITION: u16;
const MAX_DATA_DEPTH: usize = 32usize;
const MAX_DATA_ENTRIES: usize = 32usize;
const MAX_DATA_SIZE_IN_FIELDS: u32 = _;
const MAX_OPERANDS: usize = Self::MAX_INPUTS;
const MAX_INSTRUCTIONS: usize = 65_535usize;
const MAX_COMMANDS: usize = 255usize;
const MAX_INPUTS: usize = 8usize;
const MAX_OUTPUTS: usize = 8usize;
fn g_powers() -> &'static Vec<Group<Self>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
;
fn g_scalar_multiply(scalar: &Scalar<Self>) -> Group<Self>;
fn marlin_fs_parameters() -> &'static FiatShamirParameters<Self>;
fn bcm_domain() -> Field<Self>;
fn encryption_domain() -> Field<Self>;
fn graph_key_domain() -> Field<Self>;
fn randomizer_domain() -> Field<Self>;
fn r_bcm_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<Group<Self>>;
fn commit_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_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_many_psd2(
input: &[Field<Self>],
num_outputs: u16
) -> Vec<Field<Self>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
;
fn hash_many_psd4(
input: &[Field<Self>],
num_outputs: u16
) -> Vec<Field<Self>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
;
fn hash_many_psd8(
input: &[Field<Self>],
num_outputs: u16
) -> Vec<Field<Self>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
;
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;
}
Required Associated Types
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 Associated Constants
Provided Associated Constants
sourceconst MAX_DATA_DEPTH: usize = 32usize
const MAX_DATA_DEPTH: usize = 32usize
The maximum recursive depth of a value and/or entry. Note: This value must be strictly less than u8::MAX.
sourceconst MAX_DATA_ENTRIES: usize = 32usize
const MAX_DATA_ENTRIES: usize = 32usize
The maximum number of values and/or entries in data.
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 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 = 255usize
const MAX_COMMANDS: usize = 255usize
The maximum number of commands in finalize.
sourceconst MAX_INPUTS: usize = 8usize
const MAX_INPUTS: usize = 8usize
The maximum number of inputs per transition.
sourceconst MAX_OUTPUTS: usize = 8usize
const MAX_OUTPUTS: usize = 8usize
The maximum number of outputs per transition.
Required Methods
Returns the powers of G
.
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 marlin_fs_parameters() -> &'static FiatShamirParameters<Self>
fn marlin_fs_parameters() -> &'static FiatShamirParameters<Self>
Returns the sponge parameters for Marlin.
sourcefn bcm_domain() -> Field<Self>
fn bcm_domain() -> Field<Self>
Returns the balance commitment domain as a constant field element.
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 randomizer_domain() -> Field<Self>
fn randomizer_domain() -> Field<Self>
Returns the randomizer domain as a constant field element.
sourcefn r_bcm_domain() -> Field<Self>
fn r_bcm_domain() -> Field<Self>
Returns the balance commitment randomizer 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.
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.
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.
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.
sourcefn commit_ped64(input: &[bool], randomizer: &Scalar<Self>) -> Result<Group<Self>>
fn commit_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_ped128(
input: &[bool],
randomizer: &Scalar<Self>
) -> Result<Group<Self>>
fn commit_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_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.
Returns the Poseidon hash with an input rate of 2.
Returns the Poseidon hash with an input rate of 4.
Returns the Poseidon hash with an input rate of 8.
Returns the extended Poseidon hash with an input rate of 2.
Returns the extended Poseidon hash with an input rate of 4.
Returns the extended Poseidon hash with an input rate of 8.
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.