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
Coin
Contract
Message
Change
Variable
ContractCreated
Implementations
sourceimpl 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) -> Result<()>
pub fn prepare_init_script(&mut self) -> Result<()>
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
sourceimpl Output
impl Output
sourcepub fn validate(
&self,
index: usize,
inputs: &[Input]
) -> Result<(), ValidationError>
pub fn validate(
&self,
index: usize,
inputs: &[Input]
) -> Result<(), ValidationError>
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
sourceimpl From<&Output> for OutputRepr
impl From<&Output> for OutputRepr
sourceimpl From<&mut Output> for OutputRepr
impl From<&mut Output> for OutputRepr
sourceimpl Read for Output
impl Read for Output
sourcefn 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 · sourcefn 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 more
sourcefn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)Determines if this Read
er has an efficient read_vectored
implementation. Read more
1.0.0 · sourcefn 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 more
1.0.0 · sourcefn 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 more
1.6.0 · sourcefn 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 more
sourcefn read_buf(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
read_buf
)Pull some bytes from this source into the specified buffer. Read more
sourcefn read_buf_exact(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
read_buf
)Read the exact number of bytes required to fill buf
. Read more
1.0.0 · sourcefn by_ref(&mut self) -> &mut Self
fn by_ref(&mut self) -> &mut Self
Creates a “by reference” adaptor for this instance of Read
. Read more
sourceimpl SizedBytes for Output
impl SizedBytes for Output
sourcefn serialized_size(&self) -> usize
fn serialized_size(&self) -> usize
Return the expected serialized size for an instance of the type.
sourceimpl Write for Output
impl Write for Output
sourcefn 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
sourcefn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
sourcefn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)Determines if this Write
r has an efficient write_vectored
implementation. Read more
1.0.0 · sourcefn 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
sourcefn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Deserializable for T where
T: Default + Write,
impl<T> Deserializable for T where
T: Default + Write,
sourcefn from_bytes(bytes: &[u8]) -> Result<T, Error>
fn from_bytes(bytes: &[u8]) -> Result<T, Error>
Deserialization from variable length slices of bytes.