[−][src]Struct grin_core::core::transaction::TxKernel
A proof that a transaction sums to zero. Includes both the transaction's Pedersen commitment and the signature, that guarantees that the commitments amount to zero. The signature signs the fee and the lock_height, which are retained for signature validation.
Fields
features: KernelFeatures
Options for a kernel's structure or use
fee: u64
Fee originally included in the transaction this proof is for.
lock_height: u64
This kernel is not valid earlier than lock_height blocks The max lock_height of all inputs to this transaction
excess: Commitment
Remainder of the sum of all transaction commitments. If the transaction is well formed, amounts components should sum to zero and the excess is hence a valid public key.
excess_sig: Signature
The signature proving the excess is a valid public key, which signs the transaction fee.
Methods
impl TxKernel
[src]
pub fn is_coinbase(&self) -> bool
[src]
Is this a coinbase kernel?
pub fn is_plain(&self) -> bool
[src]
Is this a plain kernel?
pub fn is_height_locked(&self) -> bool
[src]
Is this a height locked kernel?
pub fn excess(&self) -> Commitment
[src]
Return the excess commitment for this tx_kernel.
pub fn msg_to_sign(&self) -> Result<Message, Error>
[src]
The msg signed as part of the tx kernel. Consists of the fee and the lock_height.
pub fn verify(&self) -> Result<(), Error>
[src]
Verify the transaction proof validity. Entails handling the commitment as a public key and checking the signature verifies with the fee as message.
pub fn empty() -> TxKernel
[src]
Build an empty tx kernel with zero values.
pub fn with_fee(self, fee: u64) -> TxKernel
[src]
Builds a new tx kernel with the provided fee.
pub fn with_lock_height(self, lock_height: u64) -> TxKernel
[src]
Builds a new tx kernel with the provided lock_height.
Trait Implementations
impl Writeable for TxKernel
[src]
impl Readable for TxKernel
[src]
impl PMMRable for TxKernel
[src]
We store TxKernelEntry in the kernel MMR.
type E = TxKernelEntry
The type of element actually stored in the MMR data file. This allows us to store Hash elements in the header MMR for variable size BlockHeaders. Read more
fn as_elmt(&self) -> TxKernelEntry
[src]
impl Clone for TxKernel
[src]
fn clone(&self) -> TxKernel
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Ord for TxKernel
[src]
fn cmp(&self, other: &TxKernel) -> Ordering
[src]
fn max(self, other: Self) -> Self
1.21.0[src]
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.21.0[src]
Compares and returns the minimum of two values. Read more
impl From<TxKernel> for TxKernelEntry
[src]
impl Eq for TxKernel
[src]
impl PartialOrd<TxKernel> for TxKernel
[src]
fn partial_cmp(&self, other: &TxKernel) -> Option<Ordering>
[src]
#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl PartialEq<TxKernel> for TxKernel
[src]
fn eq(&self, other: &TxKernel) -> bool
[src]
#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl Hash for TxKernel
[src]
fn hash<H: Hasher>(&self, state: &mut H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl Debug for TxKernel
[src]
impl Serialize for TxKernel
[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl<'de> Deserialize<'de> for TxKernel
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
Auto Trait Implementations
Blanket Implementations
impl<W> Hashed for W where
W: Writeable,
[src]
W: Writeable,
impl<H> ShortIdentifiable for H where
H: Hashed,
[src]
H: Hashed,
fn short_id(&Self, &Hash, u64) -> ShortId
[src]
Generate a short_id via the following -
- extract k0/k1 from block_hash hashed with the nonce (first two u64
values) * initialize a siphasher24 with k0/k1
- self.hash() passing in the siphasher24 instance
- drop the 2 most significant bytes (to return a 6 byte short_id)
impl<T> PMMRIndexHashable for T where
T: Writeable,
[src]
T: Writeable,
fn hash_with_index(&Self, u64) -> Hash
[src]
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
impl<T> DebugAny for T where
T: Any + Debug,
T: Any + Debug,
impl<T> CloneAny for T where
T: Clone + Any,
T: Clone + Any,
fn clone_any(&self) -> Box<dyn CloneAny + 'static>
fn clone_any_send(&self) -> Box<dyn CloneAny + 'static + Send> where
T: Send,
T: Send,
fn clone_any_sync(&self) -> Box<dyn CloneAny + 'static + Sync> where
T: Sync,
T: Sync,
fn clone_any_send_sync(&self) -> Box<dyn CloneAny + 'static + Sync + Send> where
T: Send + Sync,
T: Send + Sync,
impl<T> UnsafeAny for T where
T: Any,
T: Any,
impl<T> Erased for T
impl<T> Same for T
type Output = T
Should always be Self