Trait ToFieldElements

Source
pub trait ToFieldElements<F: Field> {
    // Required method
    fn to_field_elements(&self, fields: &mut Vec<F>);

    // Provided method
    fn to_field_elements_owned(&self) -> Vec<F> { ... }
}

Required Methods§

Source

fn to_field_elements(&self, fields: &mut Vec<F>)

Provided Methods§

Implementations on Foreign Types§

Source§

impl ToFieldElements<Fp256<FpParameters>> for Option<&ZkAppUri>

Source§

fn to_field_elements(&self, fields: &mut Vec<Fp>)

Source§

impl ToFieldElements<Fp256<FpParameters>> for Box<Account>

Source§

fn to_field_elements(&self, fields: &mut Vec<Fp>)

Source§

impl ToFieldElements<Fp256<FpParameters>> for CompressedPubKey

Source§

fn to_field_elements(&self, fields: &mut Vec<Fp>)

Source§

impl ToFieldElements<Fp256<FpParameters>> for PubKey

Source§

fn to_field_elements(&self, fields: &mut Vec<Fp>)

Source§

impl ToFieldElements<Fp256<FpParameters>> for Signature

Source§

fn to_field_elements(&self, fields: &mut Vec<Fp>)

Source§

impl ToFieldElements<Fp256<FqParameters>> for OpeningProof<Vesta>

Source§

fn to_field_elements(&self, fields: &mut Vec<Fq>)

Source§

impl ToFieldElements<Fp256<FqParameters>> for ProverCommitments<Vesta>

Source§

fn to_field_elements(&self, fields: &mut Vec<Fq>)

Source§

impl<F: FieldWitness> ToFieldElements<F> for &[bool]

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness> ToFieldElements<F> for &[u8]

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness> ToFieldElements<F> for &[AllEvals<F>]

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness> ToFieldElements<F> for bool

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness> ToFieldElements<F> for u32

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness> ToFieldElements<F> for u64

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness> ToFieldElements<F> for MinaBaseProtocolConstantsCheckedValueStableV1

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness> ToFieldElements<F> for ByteString

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness> ToFieldElements<F> for Fp

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness> ToFieldElements<F> for Fq

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness, A: ToFieldElements<F>, B: ToFieldElements<F>> ToFieldElements<F> for (A, B)

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness, T: ToFieldElements<F> + Clone> ToFieldElements<F> for Cow<'_, T>

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness, T: ToFieldElements<F>> ToFieldElements<F> for &T

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness, T: ToFieldElements<F>> ToFieldElements<F> for Box<[T]>

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness, T: ToFieldElements<F>> ToFieldElements<F> for Vec<T>

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness, T: ToFieldElements<F>> ToFieldElements<F> for PointEvaluations<T>

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness, T: ToFieldElements<F>> ToFieldElements<F> for ProofEvaluations<T>

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: FieldWitness, T: ToFieldElements<F>, const N: usize> ToFieldElements<F> for [T; N]

Source§

fn to_field_elements(&self, fields: &mut Vec<F>)

Source§

impl<F: Field> ToFieldElements<F> for ()

Source§

fn to_field_elements(&self, _fields: &mut Vec<F>)

Source§

impl<T, F> ToFieldElements<Fp256<FpParameters>> for (&OrIgnore<T>, F)
where T: ToFieldElements<Fp>, F: Fn() -> T,

Source§

fn to_field_elements(&self, fields: &mut Vec<Fp>)

Source§

impl<T, F> ToFieldElements<Fp256<FpParameters>> for (&SetOrKeep<T>, F)
where T: ToFieldElements<Fp> + Clone, F: Fn() -> T,

Source§

fn to_field_elements(&self, fields: &mut Vec<Fp>)

Source§

impl<T, F> ToFieldElements<Fp256<FpParameters>> for (FlaggedOption<&T>, F)
where T: ToFieldElements<Fp>, F: Fn() -> T,

Source§

fn to_field_elements(&self, fields: &mut Vec<Fp>)

Implementors§

Source§

impl ToFieldElements<Fp256<FpParameters>> for ProofVerified

Source§

impl ToFieldElements<Fp256<FpParameters>> for AuthorizationKind

Source§

impl ToFieldElements<Fp256<FpParameters>> for MayUseToken

Source§

impl ToFieldElements<Fp256<FpParameters>> for Stack

Source§

impl ToFieldElements<Fp256<FpParameters>> for StateStack

Source§

impl ToFieldElements<Fp256<FpParameters>> for SokDigest

Source§

impl ToFieldElements<Fp256<FpParameters>> for StackFrameCheckedFrame

Source§

impl ToFieldElements<Fp256<FpParameters>> for EpochLedger<Fp>

Source§

impl ToFieldElements<Fp256<FpParameters>> for TransactionUnion

Source§

impl ToFieldElements<Fp256<FpParameters>> for AccountPreconditions

Source§

impl ToFieldElements<Fp256<FpParameters>> for Actions

Source§

impl ToFieldElements<Fp256<FpParameters>> for Body

Source§

impl ToFieldElements<Fp256<FpParameters>> for mina_tree::scan_state::transaction_logic::zkapp_command::EpochData

Source§

impl ToFieldElements<Fp256<FpParameters>> for Events

Source§

impl ToFieldElements<Fp256<FpParameters>> for Preconditions

Source§

impl ToFieldElements<Fp256<FpParameters>> for mina_tree::scan_state::transaction_logic::zkapp_command::Timing

Source§

impl ToFieldElements<Fp256<FpParameters>> for Update

Source§

impl ToFieldElements<Fp256<FpParameters>> for ZkAppPreconditions

Source§

impl ToFieldElements<Fp256<FpParameters>> for ZkappStatement

Source§

impl ToFieldElements<Fp256<FpParameters>> for TokenId

Source§

impl ToFieldElements<Fp256<FpParameters>> for TokenSymbol

Source§

impl ToFieldElements<Fp256<FpParameters>> for VerificationKey

Source§

impl ToFieldElements<Fp256<FpParameters>> for VotingFor

Source§

impl ToFieldElements<Fp256<FpParameters>> for ZkAppAccount

Source§

impl ToFieldElements<Fp256<FpParameters>> for AccountUnhashed

Source§

impl ToFieldElements<Fp256<FpParameters>> for ConsensusState

Source§

impl ToFieldElements<Fp256<FpParameters>> for BlockchainState

Source§

impl ToFieldElements<Fp256<FpParameters>> for ProtocolState

Source§

impl ToFieldElements<Fp256<FpParameters>> for ProtocolStateBody

Source§

impl ToFieldElements<Fp256<FpParameters>> for SnarkTransition

Source§

impl ToFieldElements<Fp256<FpParameters>> for PerProofWitness

Source§

impl ToFieldElements<Fp256<FpParameters>> for StepMainStatement

Source§

impl ToFieldElements<Fp256<FpParameters>> for LedgerWithHash

Source§

impl<F, T> ToFieldElements<F> for MyCow<'_, T>
where F: FieldWitness, T: ToFieldElements<F>,

Source§

impl<F: FieldWitness> ToFieldElements<F> for AuthRequired

Source§

impl<F: FieldWitness> ToFieldElements<F> for MerklePath

Source§

impl<F: FieldWitness> ToFieldElements<F> for mina_tree::Timing

Source§

impl<F: FieldWitness> ToFieldElements<F> for Sgn

Source§

impl<F: FieldWitness> ToFieldElements<F> for Boolean

Source§

impl<F: FieldWitness> ToFieldElements<F> for CircuitVar<Sgn>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CircuitVar<Boolean>

Source§

impl<F: FieldWitness> ToFieldElements<F> for Amount

Source§

impl<F: FieldWitness> ToFieldElements<F> for Balance

Source§

impl<F: FieldWitness> ToFieldElements<F> for BlockTime

Source§

impl<F: FieldWitness> ToFieldElements<F> for BlockTimeSpan

Source§

impl<F: FieldWitness> ToFieldElements<F> for Epoch

Source§

impl<F: FieldWitness> ToFieldElements<F> for Fee

Source§

impl<F: FieldWitness> ToFieldElements<F> for Index

Source§

impl<F: FieldWitness> ToFieldElements<F> for Length

Source§

impl<F: FieldWitness> ToFieldElements<F> for N

Source§

impl<F: FieldWitness> ToFieldElements<F> for Nonce

Source§

impl<F: FieldWitness> ToFieldElements<F> for Slot

Source§

impl<F: FieldWitness> ToFieldElements<F> for SlotSpan

Source§

impl<F: FieldWitness> ToFieldElements<F> for TxnVersion

Source§

impl<F: FieldWitness> ToFieldElements<F> for CallStack

Source§

impl<F: FieldWitness> ToFieldElements<F> for mina_tree::scan_state::transaction_logic::protocol_state::EpochData<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for StagedLedgerHash<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for Permissions<AuthRequired>

Source§

impl<F: FieldWitness> ToFieldElements<F> for ReceiptChainHash

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedAmount<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedBalance<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedFee<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedBlockTime<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedBlockTimeSpan<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedIndex<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedLength<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedN32<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedN<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedNonce<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedSlot<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedSlotSpan<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for CheckedTxnVersion<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for FeatureFlags<bool>

Source§

impl<F: FieldWitness> ToFieldElements<F> for InnerCurve<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for PlonkVerificationKeyEvals<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for Failure

Source§

impl<F: FieldWitness> ToFieldElements<F> for AllEvals<F>

Source§

impl<F: FieldWitness> ToFieldElements<F> for Unfinalized

Source§

impl<F: FieldWitness> ToFieldElements<F> for GroupAffine<F>

Source§

impl<F: FieldWitness, F2: FieldWitness + ToFieldElements<F>> ToFieldElements<F> for ShiftedValue<F2>

Source§

impl<F: FieldWitness, T: Magnitude + ToFieldElements<F>> ToFieldElements<F> for Signed<T>

Source§

impl<F: FieldWitness, const N: usize> ToFieldElements<F> for Address<N>

Source§

impl<T> ToFieldElements<Fp256<FpParameters>> for WithLazyHash<T>

Source§

impl<T> ToFieldElements<Fp256<FpParameters>> for ClosedInterval<T>
where T: ToFieldElements<Fp>,

Source§

impl<T> ToFieldElements<Fp256<FpParameters>> for WithHash<T>

Source§

impl<T: ToFieldElements<Fp>> ToFieldElements<Fp256<FpParameters>> for Statement<T>

Unlike expectations, OCaml doesn’t call Sok_digest.to_field_elements on Statement_intf.to_field_elements, it is probably overwritten somewhere but I was not able to find which method exactly is used: I added lots of printf everywhere but they are never called/triggered. I suspect it uses the to_hlist, or the Typ, or the data spec, but again, I couldn’t confirm.

This implementation relies only on the output I observed here, using reproducible input test data: https://github.com/MinaProtocol/mina/blob/bfd1009abdbee78979ff0343cc73a3480e862f58/src/lib/pickles/composition_types/composition_types.ml#L714C11-L714C48

TODO: Fuzz this method, compare with OCaml