pub enum Output {
Coin {
to: Address,
amount: Word,
asset_id: AssetId,
},
Contract {
input_index: u8,
balance_root: Bytes32,
state_root: Bytes32,
},
Message {
recipient: Address,
amount: Word,
},
Change {
to: Address,
amount: Word,
asset_id: AssetId,
},
Variable {
to: Address,
amount: Word,
asset_id: AssetId,
},
ContractCreated {
contract_id: ContractId,
state_root: Bytes32,
},
}
Variants§
Implementations§
source§impl Output
impl Output
pub const fn repr(&self) -> OutputRepr
pub const fn coin(to: Address, amount: Word, asset_id: AssetId) -> Self
pub const fn contract( input_index: u8, balance_root: Bytes32, state_root: Bytes32 ) -> Self
pub const fn message(recipient: Address, amount: Word) -> Self
pub const fn change(to: Address, amount: Word, asset_id: AssetId) -> Self
pub const fn variable(to: Address, amount: Word, asset_id: AssetId) -> Self
pub const fn contract_created( contract_id: ContractId, state_root: Bytes32 ) -> Self
pub const fn asset_id(&self) -> Option<&AssetId>
pub const fn to(&self) -> Option<&Address>
pub const fn amount(&self) -> Option<Word>
pub const fn input_index(&self) -> Option<u8>
pub const fn balance_root(&self) -> Option<&Bytes32>
pub const fn state_root(&self) -> Option<&Bytes32>
pub const fn contract_id(&self) -> Option<&ContractId>
pub const fn recipient(&self) -> Option<&Address>
pub const fn is_coin(&self) -> bool
pub const fn is_message(&self) -> bool
pub const fn is_variable(&self) -> bool
pub const fn is_contract(&self) -> bool
pub const fn is_contract_created(&self) -> bool
pub fn message_id( sender: &Address, recipient: &Address, nonce: &Bytes32, amount: Word, data: &[u8] ) -> MessageId
pub fn message_nonce(txid: &Bytes32, idx: Word) -> Bytes32
pub fn message_digest(data: &[u8]) -> Bytes32
sourcepub fn prepare_init_script(&mut self)
pub fn prepare_init_script(&mut self)
Prepare the output for VM initialization for script execution
sourcepub fn prepare_init_predicate(&mut self)
pub fn prepare_init_predicate(&mut self)
Prepare the output for VM initialization for predicate verification
source§impl Output
impl Output
sourcepub fn check(&self, index: usize, inputs: &[Input]) -> Result<(), CheckError>
pub fn check(&self, index: usize, inputs: &[Input]) -> Result<(), CheckError>
Validate the output of the transaction.
This function is stateful - meaning it might validate a transaction during VM initialization, but this transaction will no longer be valid in post-execution because the VM might mutate the message outputs, producing invalid transactions.
Trait Implementations§
source§impl From<&Output> for OutputRepr
impl From<&Output> for OutputRepr
source§impl From<&mut Output> for OutputRepr
impl From<&mut Output> for OutputRepr
source§impl PartialEq<Output> for Output
impl PartialEq<Output> for Output
source§impl Read for Output
impl Read for Output
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
1.36.0 · source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read
, except that it reads into a slice of buffers. Read moresource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · source§fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
Read all bytes until EOF in this source, placing them into
buf
. Read more1.0.0 · source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Read all bytes until EOF in this source, appending them to
buf
. Read more1.6.0 · source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Read the exact number of bytes required to fill
buf
. Read moresource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Pull some bytes from this source into the specified buffer. Read more
source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Read the exact number of bytes required to fill
cursor
. Read more1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere Self: Sized,
Creates a “by reference” adaptor for this instance of
Read
. Read moresource§impl SizedBytes for Output
impl SizedBytes for Output
source§fn serialized_size(&self) -> usize
fn serialized_size(&self) -> usize
Return the expected serialized size for an instance of the type.
source§impl Write for Output
impl Write for Output
source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Write a buffer into this writer, returning how many bytes were written. Read more
source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
impl Copy for Output
impl Eq for Output
impl StructuralEq for Output
impl StructuralPartialEq for Output
Auto Trait Implementations§
impl RefUnwindSafe for Output
impl Send for Output
impl Sync for Output
impl Unpin for Output
impl UnwindSafe for Output
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<T> Deserializable for Twhere
T: Default + Write,
impl<T> Deserializable for Twhere T: Default + Write,
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more