Struct solana_sdk::transaction::Transaction [−][src]
An atomic transaction
Fields
signatures: Vec<Signature>
A set of digital signatures of account_keys
, program_ids
, recent_blockhash
, and instructions
, signed by the first
signatures.len() keys of account_keys
NOTE: Serialization-related changes must be paired with the direct read at sigverify.
message: Message
The message to sign.
Implementations
impl Transaction
[src]
impl Transaction
[src]pub fn new_unsigned(message: Message) -> Self
[src]
pub fn new_with_payer(
instructions: &[Instruction],
payer: Option<&Pubkey>
) -> Self
[src]
instructions: &[Instruction],
payer: Option<&Pubkey>
) -> Self
pub fn new_signed_with_payer<T: Signers>(
instructions: &[Instruction],
payer: Option<&Pubkey>,
signing_keypairs: &T,
recent_blockhash: Hash
) -> Self
[src]
instructions: &[Instruction],
payer: Option<&Pubkey>,
signing_keypairs: &T,
recent_blockhash: Hash
) -> Self
pub fn new<T: Signers>(
from_keypairs: &T,
message: Message,
recent_blockhash: Hash
) -> Transaction
[src]
from_keypairs: &T,
message: Message,
recent_blockhash: Hash
) -> Transaction
pub fn new_with_compiled_instructions<T: Signers>(
from_keypairs: &T,
keys: &[Pubkey],
recent_blockhash: Hash,
program_ids: Vec<Pubkey>,
instructions: Vec<CompiledInstruction>
) -> Self
[src]
from_keypairs: &T,
keys: &[Pubkey],
recent_blockhash: Hash,
program_ids: Vec<Pubkey>,
instructions: Vec<CompiledInstruction>
) -> Self
Create a signed transaction
from_keypairs
- The keys used to sign the transaction.keys
- The keys for the transaction. These are the program state instances or lamport recipient keys.recent_blockhash
- The PoH hash.program_ids
- The keys that identify programs used in theinstruction
vector.instructions
- Instructions that will be executed atomically.
Panics
Panics when signing fails.
pub fn data(&self, instruction_index: usize) -> &[u8]ⓘ
[src]
pub fn key(
&self,
instruction_index: usize,
accounts_index: usize
) -> Option<&Pubkey>
[src]
&self,
instruction_index: usize,
accounts_index: usize
) -> Option<&Pubkey>
pub fn signer_key(
&self,
instruction_index: usize,
accounts_index: usize
) -> Option<&Pubkey>
[src]
&self,
instruction_index: usize,
accounts_index: usize
) -> Option<&Pubkey>
pub fn message(&self) -> &Message
[src]
Return a message containing all data that should be signed.
pub fn message_data(&self) -> Vec<u8>ⓘ
[src]
Return the serialized message data to sign.
pub fn sign<T: Signers>(&mut self, keypairs: &T, recent_blockhash: Hash)
[src]
Check keys and keypair lengths, then sign this transaction.
Panics
Panics when signing fails, use Transaction::try_sign
to handle the error.
pub fn partial_sign<T: Signers>(&mut self, keypairs: &T, recent_blockhash: Hash)
[src]
Sign using some subset of required keys if recent_blockhash is not the same as currently in the transaction, clear any prior signatures and update recent_blockhash
Panics
Panics when signing fails, use Transaction::try_partial_sign
to handle the error.
pub fn partial_sign_unchecked<T: Signers>(
&mut self,
keypairs: &T,
positions: Vec<usize>,
recent_blockhash: Hash
)
[src]
&mut self,
keypairs: &T,
positions: Vec<usize>,
recent_blockhash: Hash
)
Sign the transaction and place the signatures in their associated positions in signatures
without checking that the positions are correct.
Panics
Panics when signing fails, use Transaction::try_partial_sign_unchecked
to handle the error.
pub fn try_sign<T: Signers>(
&mut self,
keypairs: &T,
recent_blockhash: Hash
) -> Result<(), SignerError>
[src]
&mut self,
keypairs: &T,
recent_blockhash: Hash
) -> Result<(), SignerError>
Check keys and keypair lengths, then sign this transaction, returning any signing errors encountered
pub fn try_partial_sign<T: Signers>(
&mut self,
keypairs: &T,
recent_blockhash: Hash
) -> Result<(), SignerError>
[src]
&mut self,
keypairs: &T,
recent_blockhash: Hash
) -> Result<(), SignerError>
Sign using some subset of required keys, returning any signing errors encountered. If recent_blockhash is not the same as currently in the transaction, clear any prior signatures and update recent_blockhash
pub fn try_partial_sign_unchecked<T: Signers>(
&mut self,
keypairs: &T,
positions: Vec<usize>,
recent_blockhash: Hash
) -> Result<(), SignerError>
[src]
&mut self,
keypairs: &T,
positions: Vec<usize>,
recent_blockhash: Hash
) -> Result<(), SignerError>
Sign the transaction, returning any signing errors encountered, and place the
signatures in their associated positions in signatures
without checking that the
positions are correct.
pub fn verify(&self) -> Result<()>
[src]
Verify the transaction
pub fn verify_and_hash_message(&self) -> Result<Hash>
[src]
Verify the transaction and hash its message
pub fn verify_with_results(&self) -> Vec<bool>ⓘ
[src]
pub fn verify_precompiles(&self) -> Result<()>
[src]
pub fn get_signing_keypair_positions(
&self,
pubkeys: &[Pubkey]
) -> Result<Vec<Option<usize>>>
[src]
&self,
pubkeys: &[Pubkey]
) -> Result<Vec<Option<usize>>>
Get the positions of the pubkeys in account_keys
associated with signing keypairs
pub fn replace_signatures(
&mut self,
signers: &[(Pubkey, Signature)]
) -> Result<()>
[src]
&mut self,
signers: &[(Pubkey, Signature)]
) -> Result<()>
Replace all the signatures and pubkeys
pub fn is_signed(&self) -> bool
[src]
Trait Implementations
impl AbiExample for Transaction
[src]
impl AbiExample for Transaction
[src]impl Clone for Transaction
[src]
impl Clone for Transaction
[src]fn clone(&self) -> Transaction
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Default for Transaction
[src]
impl Default for Transaction
[src]fn default() -> Transaction
[src]
impl<'de> Deserialize<'de> for Transaction
[src]
impl<'de> Deserialize<'de> for Transaction
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl Eq for Transaction
[src]
impl Eq for Transaction
[src]impl PartialEq<Transaction> for Transaction
[src]
impl PartialEq<Transaction> for Transaction
[src]fn eq(&self, other: &Transaction) -> bool
[src]
fn ne(&self, other: &Transaction) -> bool
[src]
impl Sanitize for Transaction
[src]
impl Sanitize for Transaction
[src]fn sanitize(&self) -> Result<(), SanitizeError>
[src]
impl Serialize for Transaction
[src]
impl Serialize for Transaction
[src]impl StructuralEq for Transaction
[src]
impl StructuralEq for Transaction
[src]impl StructuralPartialEq for Transaction
[src]
impl StructuralPartialEq for Transaction
[src]Auto Trait Implementations
impl RefUnwindSafe for Transaction
impl RefUnwindSafe for Transaction
impl Send for Transaction
impl Send for Transaction
impl Sync for Transaction
impl Sync for Transaction
impl Unpin for Transaction
impl Unpin for Transaction
impl UnwindSafe for Transaction
impl UnwindSafe for Transaction
Blanket Implementations
impl<T> AbiEnumVisitor for T where
T: Serialize + ?Sized,
[src]
impl<T> AbiEnumVisitor for T where
T: Serialize + ?Sized,
[src]pub default fn visit_for_abi(
&self,
_digester: &mut AbiDigester
) -> Result<AbiDigester, DigestError>
[src]
&self,
_digester: &mut AbiDigester
) -> Result<AbiDigester, DigestError>
impl<T> AbiEnumVisitor for T where
T: Serialize + AbiExample + ?Sized,
[src]
impl<T> AbiEnumVisitor for T where
T: Serialize + AbiExample + ?Sized,
[src]pub default fn visit_for_abi(
&self,
digester: &mut AbiDigester
) -> Result<AbiDigester, DigestError>
[src]
&self,
digester: &mut AbiDigester
) -> Result<AbiDigester, DigestError>
impl<T> AbiExample for T
[src]
impl<T> AbiExample for T
[src]impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,