1#[allow(clippy::derive_partial_eq_without_eq)]
5#[derive(Clone, PartialEq, ::prost::Message)]
6pub struct SolanaInstruction {
7 #[prost(string, tag="1")]
9 pub program_id: ::prost::alloc::string::String,
10 #[prost(message, repeated, tag="2")]
12 pub accounts: ::prost::alloc::vec::Vec<SolanaAccountMeta>,
13 #[prost(bytes="vec", tag="3")]
15 pub data: ::prost::alloc::vec::Vec<u8>,
16 #[prost(string, tag="4")]
18 pub description: ::prost::alloc::string::String,
19}
20#[allow(clippy::derive_partial_eq_without_eq)]
22#[derive(Clone, PartialEq, ::prost::Message)]
23pub struct SolanaAccountMeta {
24 #[prost(string, tag="1")]
26 pub pubkey: ::prost::alloc::string::String,
27 #[prost(bool, tag="2")]
29 pub is_signer: bool,
30 #[prost(bool, tag="3")]
32 pub is_writable: bool,
33}
34#[allow(clippy::derive_partial_eq_without_eq)]
43#[derive(Clone, PartialEq, ::prost::Message)]
44pub struct TransactionError {
45 #[prost(enumeration="TransactionErrorCode", tag="1")]
47 pub code: i32,
48 #[prost(string, tag="2")]
50 pub message: ::prost::alloc::string::String,
51 #[prost(string, tag="3")]
53 pub details: ::prost::alloc::string::String,
54 #[prost(bool, tag="4")]
56 pub retryable: bool,
57 #[prost(enumeration="TransactionSubmissionCertainty", tag="5")]
59 pub certainty: i32,
60 #[prost(string, tag="6")]
62 pub blockhash: ::prost::alloc::string::String,
63 #[prost(uint64, tag="7")]
65 pub blockhash_expiry_slot: u64,
66}
67#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
74#[repr(i32)]
75pub enum TransactionErrorCode {
76 Unspecified = 0,
77 InvalidTransaction = 1,
84 InvalidSignature = 2,
86 SignatureVerificationFailed = 3,
88 TransactionTooLarge = 10,
90 AccountNotFound = 4,
94 InvalidAccount = 5,
96 InvalidBlockhashFormat = 9,
98 BlockhashNotFound = 11,
100 ProgramError = 6,
104 InstructionError = 7,
106 PrecompileVerificationFailed = 8,
108 InsufficientFunds = 20,
113 AccountInUse = 21,
115 WouldExceedBlockLimit = 22,
117 TransientSimulationFailure = 23,
119 NetworkError = 40,
124 Timeout = 41,
126 NodeUnhealthy = 42,
128 RateLimited = 43,
130 RpcError = 44,
132 ConnectionFailed = 45,
134 RequestFailed = 46,
136 Unknown = 47,
138}
139impl TransactionErrorCode {
140 pub fn as_str_name(&self) -> &'static str {
145 match self {
146 TransactionErrorCode::Unspecified => "TRANSACTION_ERROR_CODE_UNSPECIFIED",
147 TransactionErrorCode::InvalidTransaction => "TRANSACTION_ERROR_CODE_INVALID_TRANSACTION",
148 TransactionErrorCode::InvalidSignature => "TRANSACTION_ERROR_CODE_INVALID_SIGNATURE",
149 TransactionErrorCode::SignatureVerificationFailed => "TRANSACTION_ERROR_CODE_SIGNATURE_VERIFICATION_FAILED",
150 TransactionErrorCode::TransactionTooLarge => "TRANSACTION_ERROR_CODE_TRANSACTION_TOO_LARGE",
151 TransactionErrorCode::AccountNotFound => "TRANSACTION_ERROR_CODE_ACCOUNT_NOT_FOUND",
152 TransactionErrorCode::InvalidAccount => "TRANSACTION_ERROR_CODE_INVALID_ACCOUNT",
153 TransactionErrorCode::InvalidBlockhashFormat => "TRANSACTION_ERROR_CODE_INVALID_BLOCKHASH_FORMAT",
154 TransactionErrorCode::BlockhashNotFound => "TRANSACTION_ERROR_CODE_BLOCKHASH_NOT_FOUND",
155 TransactionErrorCode::ProgramError => "TRANSACTION_ERROR_CODE_PROGRAM_ERROR",
156 TransactionErrorCode::InstructionError => "TRANSACTION_ERROR_CODE_INSTRUCTION_ERROR",
157 TransactionErrorCode::PrecompileVerificationFailed => "TRANSACTION_ERROR_CODE_PRECOMPILE_VERIFICATION_FAILED",
158 TransactionErrorCode::InsufficientFunds => "TRANSACTION_ERROR_CODE_INSUFFICIENT_FUNDS",
159 TransactionErrorCode::AccountInUse => "TRANSACTION_ERROR_CODE_ACCOUNT_IN_USE",
160 TransactionErrorCode::WouldExceedBlockLimit => "TRANSACTION_ERROR_CODE_WOULD_EXCEED_BLOCK_LIMIT",
161 TransactionErrorCode::TransientSimulationFailure => "TRANSACTION_ERROR_CODE_TRANSIENT_SIMULATION_FAILURE",
162 TransactionErrorCode::NetworkError => "TRANSACTION_ERROR_CODE_NETWORK_ERROR",
163 TransactionErrorCode::Timeout => "TRANSACTION_ERROR_CODE_TIMEOUT",
164 TransactionErrorCode::NodeUnhealthy => "TRANSACTION_ERROR_CODE_NODE_UNHEALTHY",
165 TransactionErrorCode::RateLimited => "TRANSACTION_ERROR_CODE_RATE_LIMITED",
166 TransactionErrorCode::RpcError => "TRANSACTION_ERROR_CODE_RPC_ERROR",
167 TransactionErrorCode::ConnectionFailed => "TRANSACTION_ERROR_CODE_CONNECTION_FAILED",
168 TransactionErrorCode::RequestFailed => "TRANSACTION_ERROR_CODE_REQUEST_FAILED",
169 TransactionErrorCode::Unknown => "TRANSACTION_ERROR_CODE_UNKNOWN",
170 }
171 }
172 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
174 match value {
175 "TRANSACTION_ERROR_CODE_UNSPECIFIED" => Some(Self::Unspecified),
176 "TRANSACTION_ERROR_CODE_INVALID_TRANSACTION" => Some(Self::InvalidTransaction),
177 "TRANSACTION_ERROR_CODE_INVALID_SIGNATURE" => Some(Self::InvalidSignature),
178 "TRANSACTION_ERROR_CODE_SIGNATURE_VERIFICATION_FAILED" => Some(Self::SignatureVerificationFailed),
179 "TRANSACTION_ERROR_CODE_TRANSACTION_TOO_LARGE" => Some(Self::TransactionTooLarge),
180 "TRANSACTION_ERROR_CODE_ACCOUNT_NOT_FOUND" => Some(Self::AccountNotFound),
181 "TRANSACTION_ERROR_CODE_INVALID_ACCOUNT" => Some(Self::InvalidAccount),
182 "TRANSACTION_ERROR_CODE_INVALID_BLOCKHASH_FORMAT" => Some(Self::InvalidBlockhashFormat),
183 "TRANSACTION_ERROR_CODE_BLOCKHASH_NOT_FOUND" => Some(Self::BlockhashNotFound),
184 "TRANSACTION_ERROR_CODE_PROGRAM_ERROR" => Some(Self::ProgramError),
185 "TRANSACTION_ERROR_CODE_INSTRUCTION_ERROR" => Some(Self::InstructionError),
186 "TRANSACTION_ERROR_CODE_PRECOMPILE_VERIFICATION_FAILED" => Some(Self::PrecompileVerificationFailed),
187 "TRANSACTION_ERROR_CODE_INSUFFICIENT_FUNDS" => Some(Self::InsufficientFunds),
188 "TRANSACTION_ERROR_CODE_ACCOUNT_IN_USE" => Some(Self::AccountInUse),
189 "TRANSACTION_ERROR_CODE_WOULD_EXCEED_BLOCK_LIMIT" => Some(Self::WouldExceedBlockLimit),
190 "TRANSACTION_ERROR_CODE_TRANSIENT_SIMULATION_FAILURE" => Some(Self::TransientSimulationFailure),
191 "TRANSACTION_ERROR_CODE_NETWORK_ERROR" => Some(Self::NetworkError),
192 "TRANSACTION_ERROR_CODE_TIMEOUT" => Some(Self::Timeout),
193 "TRANSACTION_ERROR_CODE_NODE_UNHEALTHY" => Some(Self::NodeUnhealthy),
194 "TRANSACTION_ERROR_CODE_RATE_LIMITED" => Some(Self::RateLimited),
195 "TRANSACTION_ERROR_CODE_RPC_ERROR" => Some(Self::RpcError),
196 "TRANSACTION_ERROR_CODE_CONNECTION_FAILED" => Some(Self::ConnectionFailed),
197 "TRANSACTION_ERROR_CODE_REQUEST_FAILED" => Some(Self::RequestFailed),
198 "TRANSACTION_ERROR_CODE_UNKNOWN" => Some(Self::Unknown),
199 _ => None,
200 }
201 }
202}
203#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
209#[repr(i32)]
210pub enum TransactionSubmissionCertainty {
211 Unspecified = 0,
215 NotSubmitted = 1,
217 Submitted = 2,
219 UnknownResolvable = 3,
223 Unknown = 4,
225}
226impl TransactionSubmissionCertainty {
227 pub fn as_str_name(&self) -> &'static str {
232 match self {
233 TransactionSubmissionCertainty::Unspecified => "TRANSACTION_SUBMISSION_CERTAINTY_UNSPECIFIED",
234 TransactionSubmissionCertainty::NotSubmitted => "TRANSACTION_SUBMISSION_CERTAINTY_NOT_SUBMITTED",
235 TransactionSubmissionCertainty::Submitted => "TRANSACTION_SUBMISSION_CERTAINTY_SUBMITTED",
236 TransactionSubmissionCertainty::UnknownResolvable => "TRANSACTION_SUBMISSION_CERTAINTY_UNKNOWN_RESOLVABLE",
237 TransactionSubmissionCertainty::Unknown => "TRANSACTION_SUBMISSION_CERTAINTY_UNKNOWN",
238 }
239 }
240 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
242 match value {
243 "TRANSACTION_SUBMISSION_CERTAINTY_UNSPECIFIED" => Some(Self::Unspecified),
244 "TRANSACTION_SUBMISSION_CERTAINTY_NOT_SUBMITTED" => Some(Self::NotSubmitted),
245 "TRANSACTION_SUBMISSION_CERTAINTY_SUBMITTED" => Some(Self::Submitted),
246 "TRANSACTION_SUBMISSION_CERTAINTY_UNKNOWN_RESOLVABLE" => Some(Self::UnknownResolvable),
247 "TRANSACTION_SUBMISSION_CERTAINTY_UNKNOWN" => Some(Self::Unknown),
248 _ => None,
249 }
250 }
251}
252#[allow(clippy::derive_partial_eq_without_eq)]
254#[derive(Clone, Copy, PartialEq, ::prost::Message)]
255pub struct TransactionConfig {
256 #[prost(uint32, tag="1")]
258 pub compute_unit_limit: u32,
259 #[prost(uint64, tag="2")]
260 pub compute_unit_price: u64,
261 #[prost(uint64, tag="3")]
262 pub priority_fee: u64,
263 #[prost(bool, tag="4")]
265 pub skip_preflight: bool,
266 #[prost(bool, tag="5")]
267 pub skip_account_validation: bool,
268}
269#[allow(clippy::derive_partial_eq_without_eq)]
271#[derive(Clone, PartialEq, ::prost::Message)]
272pub struct Transaction {
273 #[prost(message, repeated, tag="1")]
275 pub instructions: ::prost::alloc::vec::Vec<SolanaInstruction>,
276 #[prost(enumeration="TransactionState", tag="2")]
278 pub state: i32,
279 #[prost(message, optional, tag="3")]
281 pub config: ::core::option::Option<TransactionConfig>,
282 #[prost(string, tag="4")]
284 pub data: ::prost::alloc::string::String,
285 #[prost(string, tag="5")]
287 pub fee_payer: ::prost::alloc::string::String,
288 #[prost(string, tag="6")]
289 pub recent_blockhash: ::prost::alloc::string::String,
290 #[prost(string, repeated, tag="7")]
291 pub signatures: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
292 #[prost(string, tag="8")]
294 pub hash: ::prost::alloc::string::String,
295 #[prost(string, tag="9")]
297 pub signature: ::prost::alloc::string::String,
298 #[prost(uint64, tag="10")]
299 pub slot: u64,
300 #[prost(string, tag="11")]
302 pub meta_error_message: ::prost::alloc::string::String,
303 #[prost(string, tag="12")]
304 pub meta_logs: ::prost::alloc::string::String,
305}
306#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
308#[repr(i32)]
309pub enum TransactionState {
310 Unspecified = 0,
311 Draft = 1,
313 Compiled = 2,
315 PartiallySigned = 3,
317 FullySigned = 4,
319}
320impl TransactionState {
321 pub fn as_str_name(&self) -> &'static str {
326 match self {
327 TransactionState::Unspecified => "TRANSACTION_STATE_UNSPECIFIED",
328 TransactionState::Draft => "TRANSACTION_STATE_DRAFT",
329 TransactionState::Compiled => "TRANSACTION_STATE_COMPILED",
330 TransactionState::PartiallySigned => "TRANSACTION_STATE_PARTIALLY_SIGNED",
331 TransactionState::FullySigned => "TRANSACTION_STATE_FULLY_SIGNED",
332 }
333 }
334 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
336 match value {
337 "TRANSACTION_STATE_UNSPECIFIED" => Some(Self::Unspecified),
338 "TRANSACTION_STATE_DRAFT" => Some(Self::Draft),
339 "TRANSACTION_STATE_COMPILED" => Some(Self::Compiled),
340 "TRANSACTION_STATE_PARTIALLY_SIGNED" => Some(Self::PartiallySigned),
341 "TRANSACTION_STATE_FULLY_SIGNED" => Some(Self::FullySigned),
342 _ => None,
343 }
344 }
345}
346#[allow(clippy::derive_partial_eq_without_eq)]
348#[derive(Clone, PartialEq, ::prost::Message)]
349pub struct CompileTransactionRequest {
350 #[prost(message, optional, tag="1")]
352 pub transaction: ::core::option::Option<Transaction>,
353 #[prost(string, tag="2")]
355 pub fee_payer: ::prost::alloc::string::String,
356 #[prost(string, tag="3")]
358 pub recent_blockhash: ::prost::alloc::string::String,
359}
360#[allow(clippy::derive_partial_eq_without_eq)]
361#[derive(Clone, PartialEq, ::prost::Message)]
362pub struct CompileTransactionResponse {
363 #[prost(message, optional, tag="1")]
365 pub transaction: ::core::option::Option<Transaction>,
366}
367#[allow(clippy::derive_partial_eq_without_eq)]
368#[derive(Clone, PartialEq, ::prost::Message)]
369pub struct EstimateTransactionRequest {
370 #[prost(message, optional, tag="1")]
372 pub transaction: ::core::option::Option<Transaction>,
373 #[prost(enumeration="super::super::r#type::v1::CommitmentLevel", tag="2")]
375 pub commitment_level: i32,
376}
377#[allow(clippy::derive_partial_eq_without_eq)]
378#[derive(Clone, Copy, PartialEq, ::prost::Message)]
379pub struct EstimateTransactionResponse {
380 #[prost(uint64, tag="1")]
382 pub compute_units: u64,
383 #[prost(uint64, tag="2")]
385 pub fee_lamports: u64,
386 #[prost(uint64, tag="3")]
388 pub priority_fee: u64,
389}
390#[allow(clippy::derive_partial_eq_without_eq)]
397#[derive(Clone, PartialEq, ::prost::Message)]
398pub struct SimulateTransactionRequest {
399 #[prost(message, optional, tag="1")]
401 pub transaction: ::core::option::Option<Transaction>,
402 #[prost(enumeration="super::super::r#type::v1::CommitmentLevel", tag="2")]
404 pub commitment_level: i32,
405}
406#[allow(clippy::derive_partial_eq_without_eq)]
407#[derive(Clone, PartialEq, ::prost::Message)]
408pub struct SimulateTransactionResponse {
409 #[prost(bool, tag="1")]
410 pub success: bool,
411 #[prost(string, tag="2")]
412 pub error: ::prost::alloc::string::String,
413 #[prost(string, repeated, tag="3")]
414 pub logs: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
415}
416#[allow(clippy::derive_partial_eq_without_eq)]
417#[derive(Clone, PartialEq, ::prost::Message)]
418pub struct SignTransactionRequest {
419 #[prost(message, optional, tag="1")]
420 pub transaction: ::core::option::Option<Transaction>,
421 #[prost(oneof="sign_transaction_request::SigningMethod", tags="2, 3")]
422 pub signing_method: ::core::option::Option<sign_transaction_request::SigningMethod>,
423}
424pub mod sign_transaction_request {
426 #[allow(clippy::derive_partial_eq_without_eq)]
427#[derive(Clone, PartialEq, ::prost::Oneof)]
428 pub enum SigningMethod {
429 #[prost(message, tag="2")]
430 PrivateKeys(super::SignWithPrivateKeys),
431 #[prost(message, tag="3")]
432 Seeds(super::SignWithSeeds),
433 }
434}
435#[allow(clippy::derive_partial_eq_without_eq)]
436#[derive(Clone, PartialEq, ::prost::Message)]
437pub struct SignTransactionResponse {
438 #[prost(message, optional, tag="1")]
439 pub transaction: ::core::option::Option<Transaction>,
440}
441#[allow(clippy::derive_partial_eq_without_eq)]
442#[derive(Clone, PartialEq, ::prost::Message)]
443pub struct SignWithPrivateKeys {
444 #[prost(string, repeated, tag="1")]
446 pub private_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
447}
448#[allow(clippy::derive_partial_eq_without_eq)]
449#[derive(Clone, PartialEq, ::prost::Message)]
450pub struct SignWithSeeds {
451 #[prost(message, repeated, tag="1")]
452 pub seeds: ::prost::alloc::vec::Vec<KeySeed>,
453}
454#[allow(clippy::derive_partial_eq_without_eq)]
455#[derive(Clone, PartialEq, ::prost::Message)]
456pub struct KeySeed {
457 #[prost(string, tag="1")]
458 pub seed: ::prost::alloc::string::String,
459 #[prost(string, tag="2")]
460 pub passphrase: ::prost::alloc::string::String,
461}
462#[allow(clippy::derive_partial_eq_without_eq)]
463#[derive(Clone, PartialEq, ::prost::Message)]
464pub struct CheckIfTransactionIsExpiredRequest {
465 #[prost(message, optional, tag="1")]
467 pub transaction: ::core::option::Option<Transaction>,
468 #[prost(enumeration="super::super::r#type::v1::CommitmentLevel", tag="2")]
470 pub commitment_level: i32,
471}
472#[allow(clippy::derive_partial_eq_without_eq)]
473#[derive(Clone, Copy, PartialEq, ::prost::Message)]
474pub struct CheckIfTransactionIsExpiredResponse {
475 #[prost(bool, tag="1")]
477 pub is_expired: bool,
478}
479#[allow(clippy::derive_partial_eq_without_eq)]
482#[derive(Clone, PartialEq, ::prost::Message)]
483pub struct SubmitTransactionRequest {
484 #[prost(message, optional, tag="1")]
486 pub transaction: ::core::option::Option<Transaction>,
487 #[prost(enumeration="super::super::r#type::v1::CommitmentLevel", tag="2")]
489 pub commitment_level: i32,
490}
491#[allow(clippy::derive_partial_eq_without_eq)]
496#[derive(Clone, PartialEq, ::prost::Message)]
497pub struct SubmitTransactionResponse {
498 #[prost(string, tag="1")]
500 pub signature: ::prost::alloc::string::String,
501 #[prost(enumeration="SubmissionResult", tag="2")]
503 pub submission_result: i32,
504 #[prost(string, tag="3")]
506 pub error_message: ::prost::alloc::string::String,
507 #[prost(message, optional, tag="4")]
509 pub structured_error: ::core::option::Option<TransactionError>,
510}
511#[allow(clippy::derive_partial_eq_without_eq)]
512#[derive(Clone, PartialEq, ::prost::Message)]
513pub struct GetTransactionRequest {
514 #[prost(string, tag="1")]
515 pub signature: ::prost::alloc::string::String,
516 #[prost(enumeration="super::super::r#type::v1::CommitmentLevel", tag="2")]
518 pub commitment_level: i32,
519}
520#[allow(clippy::derive_partial_eq_without_eq)]
521#[derive(Clone, PartialEq, ::prost::Message)]
522pub struct GetTransactionResponse {
523 #[prost(message, optional, tag="1")]
524 pub transaction: ::core::option::Option<Transaction>,
525}
526#[allow(clippy::derive_partial_eq_without_eq)]
528#[derive(Clone, PartialEq, ::prost::Message)]
529pub struct MonitorTransactionRequest {
530 #[prost(string, tag="1")]
532 pub signature: ::prost::alloc::string::String,
533 #[prost(enumeration="super::super::r#type::v1::CommitmentLevel", tag="2")]
535 pub commitment_level: i32,
536 #[prost(bool, tag="3")]
538 pub include_logs: bool,
539 #[prost(uint32, tag="4")]
541 pub timeout_seconds: u32,
542}
543#[allow(clippy::derive_partial_eq_without_eq)]
544#[derive(Clone, PartialEq, ::prost::Message)]
545pub struct MonitorTransactionResponse {
546 #[prost(string, tag="1")]
548 pub signature: ::prost::alloc::string::String,
549 #[prost(enumeration="TransactionStatus", tag="2")]
551 pub status: i32,
552 #[prost(uint64, tag="3")]
554 pub slot: u64,
555 #[prost(string, tag="4")]
557 pub error_message: ::prost::alloc::string::String,
558 #[prost(string, repeated, tag="5")]
560 pub logs: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
561 #[prost(uint64, tag="6")]
563 pub compute_units_consumed: u64,
564 #[prost(enumeration="super::super::r#type::v1::CommitmentLevel", tag="7")]
566 pub current_commitment: i32,
567}
568#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
569#[repr(i32)]
570pub enum SubmissionResult {
571 Unspecified = 0,
572 Submitted = 1,
574 FailedValidation = 2,
576 FailedNetworkError = 3,
578 FailedInsufficientFunds = 4,
580 FailedInvalidSignature = 5,
582 Indeterminate = 6,
584}
585impl SubmissionResult {
586 pub fn as_str_name(&self) -> &'static str {
591 match self {
592 SubmissionResult::Unspecified => "SUBMISSION_RESULT_UNSPECIFIED",
593 SubmissionResult::Submitted => "SUBMISSION_RESULT_SUBMITTED",
594 SubmissionResult::FailedValidation => "SUBMISSION_RESULT_FAILED_VALIDATION",
595 SubmissionResult::FailedNetworkError => "SUBMISSION_RESULT_FAILED_NETWORK_ERROR",
596 SubmissionResult::FailedInsufficientFunds => "SUBMISSION_RESULT_FAILED_INSUFFICIENT_FUNDS",
597 SubmissionResult::FailedInvalidSignature => "SUBMISSION_RESULT_FAILED_INVALID_SIGNATURE",
598 SubmissionResult::Indeterminate => "SUBMISSION_RESULT_INDETERMINATE",
599 }
600 }
601 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
603 match value {
604 "SUBMISSION_RESULT_UNSPECIFIED" => Some(Self::Unspecified),
605 "SUBMISSION_RESULT_SUBMITTED" => Some(Self::Submitted),
606 "SUBMISSION_RESULT_FAILED_VALIDATION" => Some(Self::FailedValidation),
607 "SUBMISSION_RESULT_FAILED_NETWORK_ERROR" => Some(Self::FailedNetworkError),
608 "SUBMISSION_RESULT_FAILED_INSUFFICIENT_FUNDS" => Some(Self::FailedInsufficientFunds),
609 "SUBMISSION_RESULT_FAILED_INVALID_SIGNATURE" => Some(Self::FailedInvalidSignature),
610 "SUBMISSION_RESULT_INDETERMINATE" => Some(Self::Indeterminate),
611 _ => None,
612 }
613 }
614}
615#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
616#[repr(i32)]
617pub enum TransactionStatus {
618 Unspecified = 0,
619 Received = 1,
621 Processed = 2,
623 Confirmed = 3,
625 Finalized = 4,
627 Failed = 5,
629 Dropped = 6,
631 Timeout = 7,
633}
634impl TransactionStatus {
635 pub fn as_str_name(&self) -> &'static str {
640 match self {
641 TransactionStatus::Unspecified => "TRANSACTION_STATUS_UNSPECIFIED",
642 TransactionStatus::Received => "TRANSACTION_STATUS_RECEIVED",
643 TransactionStatus::Processed => "TRANSACTION_STATUS_PROCESSED",
644 TransactionStatus::Confirmed => "TRANSACTION_STATUS_CONFIRMED",
645 TransactionStatus::Finalized => "TRANSACTION_STATUS_FINALIZED",
646 TransactionStatus::Failed => "TRANSACTION_STATUS_FAILED",
647 TransactionStatus::Dropped => "TRANSACTION_STATUS_DROPPED",
648 TransactionStatus::Timeout => "TRANSACTION_STATUS_TIMEOUT",
649 }
650 }
651 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
653 match value {
654 "TRANSACTION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
655 "TRANSACTION_STATUS_RECEIVED" => Some(Self::Received),
656 "TRANSACTION_STATUS_PROCESSED" => Some(Self::Processed),
657 "TRANSACTION_STATUS_CONFIRMED" => Some(Self::Confirmed),
658 "TRANSACTION_STATUS_FINALIZED" => Some(Self::Finalized),
659 "TRANSACTION_STATUS_FAILED" => Some(Self::Failed),
660 "TRANSACTION_STATUS_DROPPED" => Some(Self::Dropped),
661 "TRANSACTION_STATUS_TIMEOUT" => Some(Self::Timeout),
662 _ => None,
663 }
664 }
665}
666include!("protochain.solana.transaction.v1.tonic.rs");
667