Struct cryptoballot::MixTransaction[][src]

pub struct MixTransaction {
    pub id: Identifier,
    pub election_id: Identifier,
    pub prev_mix_id: Option<Identifier>,
    pub trustee_index: u8,
    pub trustee_public_key: PublicKey,
    pub mix_index: u8,
    pub contest_index: u32,
    pub batch: u32,
    pub vote_ids: Vec<Identifier>,
    pub mixed_ciphertexts: Vec<Ciphertext>,
    pub proof: ShuffleProof,
}
Expand description

Transaction 8: Mix

Fields

id: Identifierelection_id: Identifier
Expand description

Election ID

prev_mix_id: Option<Identifier>
Expand description

The previous mix ID, or None if this is the first mix

trustee_index: u8
Expand description

The trustee index

trustee_public_key: PublicKey
Expand description

The trustee public-key

mix_index: u8
Expand description

The mix-index (starts at 0) Generally this is the same as the trustee index - 1, but may be different if one of the trustees failed to produce a mix within the alloted timeout.

contest_index: u32
Expand description

The contest that this mix is for

batch: u32
Expand description

If there are more votes in the contest than the mix batch-size, then mixes are batched

vote_ids: Vec<Identifier>
Expand description

A list of all vote ids in this mix These votes-ids must be in ascending order

mixed_ciphertexts: Vec<Ciphertext>
Expand description

A shuffled and re-encrypted mix of ciphertexts

proof: ShuffleProof
Expand description

Proof of correct shuffle and re-encryption

Implementations

impl MixTransaction[src]

pub fn new(
    election_id: Identifier,
    prev_mix_id: Option<Identifier>,
    trustee: &Trustee,
    mix_index: u8,
    contest_index: u32,
    batch: u32,
    vote_ids: Vec<Identifier>,
    mixed_ciphertexts: Vec<Ciphertext>,
    proof: ShuffleProof
) -> Self
[src]

Create a new DecryptionTransaction with the decrypted vote

pub fn build_id(
    election_id: Identifier,
    contest_index: u32,
    batch: u32,
    mix_index: u8,
    trustee_index: u8
) -> Identifier
[src]

Trait Implementations

impl AsRef<MixTransaction> for SignedTransaction[src]

fn as_ref(&self) -> &MixTransaction[src]

Performs the conversion.

impl Clone for MixTransaction[src]

fn clone(&self) -> MixTransaction[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl CryptoBallotTransaction for MixTransaction[src]

fn validate_tx<S: Store>(&self, store: &S) -> Result<(), ValidationError>[src]

Validate the transaction

fn id(&self) -> Identifier[src]

Get the transaction ID

fn public(&self) -> Option<PublicKey>[src]

Get the transaction public key, if there is one

fn election_id(&self) -> Identifier[src]

Get the transaction election ID

fn tx_type() -> TransactionType[src]

Get the transaction Type

fn as_bytes(&self) -> Vec<u8>[src]

Serialize the transaction to bytes for signing

impl<'de> Deserialize<'de> for MixTransaction[src]

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
    __D: Deserializer<'de>, 
[src]

Deserialize this value from the given Serde deserializer. Read more

impl From<SignedTransaction> for MixTransaction[src]

fn from(tx: SignedTransaction) -> Self[src]

Performs the conversion.

impl Serialize for MixTransaction[src]

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
    __S: Serializer
[src]

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

impl RefUnwindSafe for MixTransaction

impl Send for MixTransaction

impl Sync for MixTransaction

impl Unpin for MixTransaction

impl UnwindSafe for MixTransaction

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Pointable for T[src]

pub const ALIGN: usize[src]

The alignment of pointer.

type Init = T

The type for initializers.

pub unsafe fn init(init: <T as Pointable>::Init) -> usize[src]

Initializes a with the given initializer. Read more

pub unsafe fn deref<'a>(ptr: usize) -> &'a T[src]

Dereferences the given pointer. Read more

pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T[src]

Mutably dereferences the given pointer. Read more

pub unsafe fn drop(ptr: usize)[src]

Drops the object pointed to by the given pointer. Read more

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]

pub fn vzip(self) -> V[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]