Struct flow_sdk::access::SendTransactionResponse [−][src]
Expand description
The id of the transaction on the network.
Fields
id: Vec<u8>
The id of the transaction.
Implementations
pub fn finalize<'a, C: GrpcClient<GetTransactionRequest<&'a [u8]>, TransactionResultResponse>>(
&'a self,
client: C
) -> Finalize<&'a [u8], C>ⓘNotable traits for Finalize<Id, C>impl<Id, C: GrpcClient<GetTransactionRequest<Id>, TransactionResultResponse>> Future for Finalize<Id, C> where
Self: Unpin,
Id: Copy, type Output = Result<Option<TransactionResultResponse>, C::Error>;
pub fn finalize<'a, C: GrpcClient<GetTransactionRequest<&'a [u8]>, TransactionResultResponse>>(
&'a self,
client: C
) -> Finalize<&'a [u8], C>ⓘNotable traits for Finalize<Id, C>impl<Id, C: GrpcClient<GetTransactionRequest<Id>, TransactionResultResponse>> Future for Finalize<Id, C> where
Self: Unpin,
Id: Copy, type Output = Result<Option<TransactionResultResponse>, C::Error>;
impl<Id, C: GrpcClient<GetTransactionRequest<Id>, TransactionResultResponse>> Future for Finalize<Id, C> where
Self: Unpin,
Id: Copy, type Output = Result<Option<TransactionResultResponse>, C::Error>;
Returns a future that periodically queries the transaction response until the transaction is sealed or expired.
The default delay is 2 seconds between requests, and the default timeout is 15 seconds.
To customize the delay and the timeout, refer to Finalize
’s documentation.
Examples found in repository
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
let stdin = stdin();
let mut stdin = stdin.lock();
let mut buf = String::new();
// Let's make a transaction!
// First, generate a keypair for us to use.
let secp = Secp256k1::signing_only();
// `EntropyRng` is a secure random number generator.
let mut rng = secp256k1::rand::rngs::EntropyRng::new();
let secret_key = SecretKey::new(&mut rng);
let public_key = PublicKey::from_secret_key(&secp, &secret_key);
// Print the public key as a hexadecimal.
println!("This is your public key:");
let public_key_bytes = public_key.serialize_uncompressed();
// There is a leading 0x04 which we don't need to emit
// https://bitcoin.stackexchange.com/a/3043
for ch in &public_key_bytes[1..] {
print!("{:02x}", *ch);
}
println!();
println!("Go to https://flow-faucet.vercel.app/, select secp256k1 and sha3 and create your testnet account.");
println!("Paste the address you get and press ENTER to continue");
stdin.read_line(&mut buf)?;
let addr = buf.trim();
let address: AddressOwned = addr.parse()?;
let net = TonicHyperFlowClient::testnet().await?;
let mut account = Account::<_, _>::new(net, &address.data, secret_key).await?;
let create_account = CreateAccountTransaction {
public_keys: &[public_key],
};
let create_account_header = create_account.to_header::<_, tiny_keccak::Sha3>(account.signer());
let res = account
.send_transaction_header(&create_account_header)
.await?;
println!(
"Just made {} to create another account :p",
hex::encode(&res.id)
);
let response = res.finalize(account.client()).await?;
match response {
Some(res) => {
for ev in res.events.iter() {
if ev.ty == "flow.AccountCreated" {
let payload = ev.parse_payload()?;
let addr = payload
.fields
.into_iter()
.find(|field| field.name == "address")
.map(|field| field.value)
.unwrap();
if let ValueOwned::Address(addr) = addr {
println!("Created account's address is: {}", addr);
}
}
}
}
None => {
panic!("The transaction did not get sealed... Perhaps the network is malfunctioning?")
}
}
Ok(())
}
Trait Implementations
type Wire = LengthDelimitedWire
If this is a message
, call merge()
on all fields,
if this is repeated
, extend this with the elements of other
.
for all other types simply overwrite this with other
, which is the default. Read more
fn merge_from<B>(
&mut self,
deserializer: &mut Deserializer<'de, B>
) -> Result<(), DecodingError> where
B: Buf,
fn decode_field<B: Buf>(
&mut self,
d: &mut Deserializer<'de, B>,
tag: Self::Tag
) -> Result<()>
fn decode_field<B: Buf>(
&mut self,
d: &mut Deserializer<'de, B>,
tag: Self::Tag
) -> Result<()>
Decodes a field with the given tag. Read more
fn decode<B>(
deserializer: &mut Deserializer<'de, B>
) -> Result<Self, DecodingError> where
B: Buf,
Self: Default,
Returns the “default value” for a type. Read more
impl<Script, Arguments, ReferenceBlockId, ProposalKeyAddress, Payer, Authorizers, PayloadSignatures, EnvelopeSignatures> FlowRequest<SendTransactionResponse> for SendTransactionRequest<Script, Arguments, ReferenceBlockId, ProposalKeyAddress, Payer, Authorizers, PayloadSignatures, EnvelopeSignatures>
impl<Script, Arguments, ReferenceBlockId, ProposalKeyAddress, Payer, Authorizers, PayloadSignatures, EnvelopeSignatures> FlowRequest<SendTransactionResponse> for SendTransactionRequest<Script, Arguments, ReferenceBlockId, ProposalKeyAddress, Payer, Authorizers, PayloadSignatures, EnvelopeSignatures>
Auto Trait Implementations
impl RefUnwindSafe for SendTransactionResponse
impl Send for SendTransactionResponse
impl Sync for SendTransactionResponse
impl Unpin for SendTransactionResponse
impl UnwindSafe for SendTransactionResponse
Blanket Implementations
Mutably borrows from an owned value. Read more
Wrap the input message T
in a tonic::Request
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more