pub enum Input {
CoinSigned(CoinSigned),
CoinPredicate(CoinPredicate),
Contract(Contract),
MessageCoinSigned(MessageCoinSigned),
MessageCoinPredicate(MessageCoinPredicate),
MessageDataSigned(MessageDataSigned),
MessageDataPredicate(MessageDataPredicate),
}
Variants§
CoinSigned(CoinSigned)
CoinPredicate(CoinPredicate)
Contract(Contract)
MessageCoinSigned(MessageCoinSigned)
MessageCoinPredicate(MessageCoinPredicate)
MessageDataSigned(MessageDataSigned)
MessageDataPredicate(MessageDataPredicate)
Implementations§
source§impl Input
impl Input
pub const fn repr(&self) -> InputRepr
pub fn owner(pk: &PublicKey) -> Address
pub const fn coin_predicate( utxo_id: UtxoId, owner: Address, amount: Word, asset_id: AssetId, tx_pointer: TxPointer, predicate_gas_used: Word, predicate: Vec<u8>, predicate_data: Vec<u8>, ) -> Self
pub const fn coin_signed( utxo_id: UtxoId, owner: Address, amount: Word, asset_id: AssetId, tx_pointer: TxPointer, witness_index: u16, ) -> Self
pub const fn contract( utxo_id: UtxoId, balance_root: Bytes32, state_root: Bytes32, tx_pointer: TxPointer, contract_id: ContractId, ) -> Self
pub const fn message_coin_signed( sender: Address, recipient: Address, amount: Word, nonce: Nonce, witness_index: u16, ) -> Self
pub const fn message_coin_predicate( sender: Address, recipient: Address, amount: Word, nonce: Nonce, predicate_gas_used: Word, predicate: Vec<u8>, predicate_data: Vec<u8>, ) -> Self
pub const fn message_data_signed( sender: Address, recipient: Address, amount: Word, nonce: Nonce, witness_index: u16, data: Vec<u8>, ) -> Self
pub const fn message_data_predicate( sender: Address, recipient: Address, amount: Word, nonce: Nonce, predicate_gas_used: Word, data: Vec<u8>, predicate: Vec<u8>, predicate_data: Vec<u8>, ) -> Self
pub const fn utxo_id(&self) -> Option<&UtxoId>
pub const fn input_owner(&self) -> Option<&Address>
pub const fn asset_id<'a>( &'a self, base_asset_id: &'a AssetId, ) -> Option<&'a AssetId>
pub const fn contract_id(&self) -> Option<&ContractId>
pub const fn amount(&self) -> Option<Word>
pub const fn witness_index(&self) -> Option<u16>
pub fn predicate_offset(&self) -> Option<usize>
pub fn predicate_data_offset(&self) -> Option<usize>
pub fn predicate_len(&self) -> Option<usize>
pub fn predicate_data_len(&self) -> Option<usize>
pub fn predicate_gas_used(&self) -> Option<Word>
pub fn message_id(&self) -> Option<MessageId>
pub const fn tx_pointer(&self) -> Option<&TxPointer>
pub fn input_data(&self) -> Option<&[u8]>
pub fn input_data_len(&self) -> Option<usize>
pub fn input_predicate(&self) -> Option<&[u8]>
pub fn input_predicate_data(&self) -> Option<&[u8]>
sourcepub fn predicate(&self) -> Option<(&[u8], &[u8], &Word)>
pub fn predicate(&self) -> Option<(&[u8], &[u8], &Word)>
Return a tuple containing the predicate, its data and used gas if the input is of
type CoinPredicate
or MessageCoinPredicate
or MessageDataPredicate
pub const fn is_coin(&self) -> bool
pub const fn is_coin_signed(&self) -> bool
pub const fn is_coin_predicate(&self) -> bool
pub const fn is_message(&self) -> bool
pub const fn is_message_coin_signed(&self) -> bool
pub const fn is_message_coin_predicate(&self) -> bool
pub const fn is_message_data_signed(&self) -> bool
pub const fn is_message_data_predicate(&self) -> bool
pub const fn is_contract(&self) -> bool
pub const fn coin_predicate_offset() -> usize
pub const fn message_data_offset() -> usize
pub const fn balance_root(&self) -> Option<&Bytes32>
pub const fn state_root(&self) -> Option<&Bytes32>
pub const fn sender(&self) -> Option<&Address>
pub const fn recipient(&self) -> Option<&Address>
pub const fn nonce(&self) -> Option<&Nonce>
sourcepub fn prepare_sign(&mut self)
pub fn prepare_sign(&mut self)
Empties fields that should be zero during the signing.
pub fn compute_message_id( sender: &Address, recipient: &Address, nonce: &Nonce, amount: Word, data: &[u8], ) -> MessageId
pub fn predicate_owner<P>(predicate: P) -> Address
pub fn is_predicate_owner_valid<P>(owner: &Address, predicate: P) -> bool
source§impl Input
impl Input
pub fn check( &self, index: usize, txhash: &Bytes32, outputs: &[Output], witnesses: &[Witness], predicate_params: &PredicateParameters, recovery_cache: &mut Option<HashMap<u16, Address>>, ) -> Result<(), ValidityError>
pub fn check_signature( &self, index: usize, txhash: &Bytes32, witnesses: &[Witness], recovery_cache: &mut Option<HashMap<u16, Address>>, ) -> Result<(), ValidityError>
pub fn check_without_signature( &self, index: usize, outputs: &[Output], witnesses: &[Witness], predicate_params: &PredicateParameters, ) -> Result<(), ValidityError>
Trait Implementations§
source§impl Deserialize for Input
impl Deserialize for Input
source§fn decode_static<I: Input + ?Sized>(buffer: &mut I) -> Result<Self, Error>
fn decode_static<I: Input + ?Sized>(buffer: &mut I) -> Result<Self, Error>
Decodes static part of
Self
from the buffer
.source§fn decode_dynamic<I: Input + ?Sized>(
&mut self,
buffer: &mut I,
) -> Result<(), Error>
fn decode_dynamic<I: Input + ?Sized>( &mut self, buffer: &mut I, ) -> Result<(), Error>
Decodes dynamic part of the information from the
buffer
to fill Self
.
The default implementation does nothing. Dynamically-sized contains should
override this.source§impl PartialEq for Input
impl PartialEq for Input
source§impl Serialize for Input
impl Serialize for Input
source§fn size_static(&self) -> usize
fn size_static(&self) -> usize
Size of the static part of the serialized object, in bytes.
Saturates to usize::MAX on overflow.
source§fn size_dynamic(&self) -> usize
fn size_dynamic(&self) -> usize
Size of the dynamic part, in bytes.
Saturates to usize::MAX on overflow.
source§fn encode_static<O: Output + ?Sized>(&self, buffer: &mut O) -> Result<(), Error>
fn encode_static<O: Output + ?Sized>(&self, buffer: &mut O) -> Result<(), Error>
Encodes staticly-sized part of
Self
.source§fn encode_dynamic<O: Output + ?Sized>(
&self,
buffer: &mut O,
) -> Result<(), Error>
fn encode_dynamic<O: Output + ?Sized>( &self, buffer: &mut O, ) -> Result<(), Error>
Encodes dynamically-sized part of
Self
.
The default implementation does nothing. Dynamically-sized contains should
override this.source§fn size(&self) -> usize
fn size(&self) -> usize
Total size of the serialized object, in bytes.
Saturates to usize::MAX on overflow.
impl Eq for Input
impl StructuralPartialEq for Input
Auto Trait Implementations§
impl Freeze for Input
impl RefUnwindSafe for Input
impl Send for Input
impl Sync for Input
impl Unpin for Input
impl UnwindSafe for Input
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self
to use its Binary
implementation when Debug
-formatted.source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self
to use its Display
implementation when
Debug
-formatted.source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self
to use its LowerExp
implementation when
Debug
-formatted.source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self
to use its LowerHex
implementation when
Debug
-formatted.source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self
to use its Octal
implementation when Debug
-formatted.source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self
to use its Pointer
implementation when
Debug
-formatted.source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self
to use its UpperExp
implementation when
Debug
-formatted.source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self
to use its UpperHex
implementation when
Debug
-formatted.source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self
, then passes self.as_mut()
into the pipe
function.source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self
, then passes self.deref()
into the pipe function.source§impl<T> StorageAsMut for T
impl<T> StorageAsMut for T
fn storage<Type>(&mut self) -> StorageMut<'_, Self, Type>where
Type: Mappable,
fn storage_as_mut<Type>(&mut self) -> StorageMut<'_, Self, Type>where
Type: Mappable,
source§impl<T> StorageAsRef for T
impl<T> StorageAsRef for T
fn storage<Type>(&self) -> StorageRef<'_, Self, Type>where
Type: Mappable,
fn storage_as_ref<Type>(&self) -> StorageRef<'_, Self, Type>where
Type: Mappable,
source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref()
only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds.source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref()
only in debug builds, and is erased in release
builds.