1#[allow(clippy::derive_partial_eq_without_eq)]
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct NoParams {}
4#[allow(clippy::derive_partial_eq_without_eq)]
6#[derive(Clone, PartialEq, ::prost::Message)]
7pub struct NodeConfiguration {
8 #[prost(uint32, tag = "1")]
9 pub milestone_public_key_count: u32,
10 #[prost(message, repeated, tag = "2")]
11 pub milestone_key_ranges: ::prost::alloc::vec::Vec<MilestoneKeyRange>,
12 #[prost(message, optional, tag = "3")]
13 pub base_token: ::core::option::Option<BaseToken>,
14 #[prost(uint32, repeated, tag = "4")]
15 pub supported_protocol_versions: ::prost::alloc::vec::Vec<u32>,
16}
17#[allow(clippy::derive_partial_eq_without_eq)]
18#[derive(Clone, PartialEq, ::prost::Message)]
19pub struct BaseToken {
20 #[prost(string, tag = "1")]
21 pub name: ::prost::alloc::string::String,
22 #[prost(string, tag = "2")]
23 pub ticker_symbol: ::prost::alloc::string::String,
24 #[prost(string, tag = "3")]
25 pub unit: ::prost::alloc::string::String,
26 #[prost(string, tag = "4")]
27 pub subunit: ::prost::alloc::string::String,
28 #[prost(uint32, tag = "5")]
29 pub decimals: u32,
30 #[prost(bool, tag = "6")]
31 pub use_metric_prefix: bool,
32}
33#[allow(clippy::derive_partial_eq_without_eq)]
34#[derive(Clone, PartialEq, ::prost::Message)]
35pub struct MilestoneKeyRange {
36 #[prost(bytes = "vec", tag = "1")]
37 pub public_key: ::prost::alloc::vec::Vec<u8>,
38 #[prost(uint32, tag = "2")]
39 pub start_index: u32,
40 #[prost(uint32, tag = "3")]
41 pub end_index: u32,
42}
43#[allow(clippy::derive_partial_eq_without_eq)]
44#[derive(Clone, PartialEq, ::prost::Message)]
45pub struct NodeStatus {
46 #[prost(bool, tag = "1")]
47 pub is_healthy: bool,
48 #[prost(bool, tag = "2")]
49 pub is_synced: bool,
50 #[prost(bool, tag = "3")]
51 pub is_almost_synced: bool,
52 #[prost(message, optional, tag = "4")]
53 pub latest_milestone: ::core::option::Option<Milestone>,
54 #[prost(message, optional, tag = "5")]
55 pub confirmed_milestone: ::core::option::Option<Milestone>,
56 #[prost(message, optional, tag = "6")]
57 pub current_protocol_parameters: ::core::option::Option<RawProtocolParameters>,
58 #[prost(uint32, tag = "7")]
59 pub tangle_pruning_index: u32,
60 #[prost(uint32, tag = "8")]
61 pub milestones_pruning_index: u32,
62 #[prost(uint32, tag = "9")]
63 pub ledger_pruning_index: u32,
64 #[prost(uint32, tag = "10")]
65 pub ledger_index: u32,
66}
67#[allow(clippy::derive_partial_eq_without_eq)]
68#[derive(Clone, PartialEq, ::prost::Message)]
69pub struct NodeStatusRequest {
70 #[prost(uint32, tag = "1")]
71 pub cooldown_in_milliseconds: u32,
72}
73#[allow(clippy::derive_partial_eq_without_eq)]
74#[derive(Clone, PartialEq, ::prost::Message)]
75pub struct RawProtocolParameters {
76 #[prost(uint32, tag = "1")]
77 pub protocol_version: u32,
78 #[prost(bytes = "vec", tag = "2")]
79 pub params: ::prost::alloc::vec::Vec<u8>,
80}
81#[allow(clippy::derive_partial_eq_without_eq)]
83#[derive(Clone, PartialEq, ::prost::Message)]
84pub struct RawMilestone {
85 #[prost(bytes = "vec", tag = "1")]
86 pub data: ::prost::alloc::vec::Vec<u8>,
87}
88#[allow(clippy::derive_partial_eq_without_eq)]
89#[derive(Clone, PartialEq, ::prost::Message)]
90pub struct MilestoneId {
91 #[prost(bytes = "vec", tag = "1")]
92 pub id: ::prost::alloc::vec::Vec<u8>,
93}
94#[allow(clippy::derive_partial_eq_without_eq)]
95#[derive(Clone, PartialEq, ::prost::Message)]
96pub struct MilestoneRequest {
97 #[prost(uint32, tag = "1")]
98 pub milestone_index: u32,
99 #[prost(message, optional, tag = "2")]
100 pub milestone_id: ::core::option::Option<MilestoneId>,
101}
102#[allow(clippy::derive_partial_eq_without_eq)]
103#[derive(Clone, PartialEq, ::prost::Message)]
104pub struct MilestoneRangeRequest {
105 #[prost(uint32, tag = "1")]
107 pub start_milestone_index: u32,
108 #[prost(uint32, tag = "2")]
110 pub end_milestone_index: u32,
111}
112#[allow(clippy::derive_partial_eq_without_eq)]
113#[derive(Clone, PartialEq, ::prost::Message)]
114pub struct MilestoneInfo {
115 #[prost(message, optional, tag = "1")]
117 pub milestone_id: ::core::option::Option<MilestoneId>,
118 #[prost(uint32, tag = "2")]
119 pub milestone_index: u32,
120 #[prost(uint32, tag = "3")]
122 pub milestone_timestamp: u32,
123}
124#[allow(clippy::derive_partial_eq_without_eq)]
125#[derive(Clone, PartialEq, ::prost::Message)]
126pub struct Milestone {
127 #[prost(message, optional, tag = "1")]
128 pub milestone_info: ::core::option::Option<MilestoneInfo>,
129 #[prost(message, optional, tag = "2")]
131 pub milestone: ::core::option::Option<RawMilestone>,
132}
133#[allow(clippy::derive_partial_eq_without_eq)]
134#[derive(Clone, PartialEq, ::prost::Message)]
135pub struct MilestoneAndProtocolParameters {
136 #[prost(message, optional, tag = "1")]
137 pub milestone: ::core::option::Option<Milestone>,
138 #[prost(message, optional, tag = "2")]
139 pub current_protocol_parameters: ::core::option::Option<RawProtocolParameters>,
140}
141#[allow(clippy::derive_partial_eq_without_eq)]
142#[derive(Clone, PartialEq, ::prost::Message)]
143pub struct WhiteFlagRequest {
144 #[prost(uint32, tag = "1")]
145 pub milestone_index: u32,
146 #[prost(uint32, tag = "2")]
147 pub milestone_timestamp: u32,
148 #[prost(message, repeated, tag = "3")]
149 pub parents: ::prost::alloc::vec::Vec<BlockId>,
150 #[prost(message, optional, tag = "4")]
151 pub previous_milestone_id: ::core::option::Option<MilestoneId>,
152}
153#[allow(clippy::derive_partial_eq_without_eq)]
154#[derive(Clone, PartialEq, ::prost::Message)]
155pub struct WhiteFlagResponse {
156 #[prost(bytes = "vec", tag = "1")]
157 pub milestone_inclusion_merkle_root: ::prost::alloc::vec::Vec<u8>,
158 #[prost(bytes = "vec", tag = "2")]
159 pub milestone_applied_merkle_root: ::prost::alloc::vec::Vec<u8>,
160}
161#[allow(clippy::derive_partial_eq_without_eq)]
163#[derive(Clone, PartialEq, ::prost::Message)]
164pub struct RawBlock {
165 #[prost(bytes = "vec", tag = "1")]
166 pub data: ::prost::alloc::vec::Vec<u8>,
167}
168#[allow(clippy::derive_partial_eq_without_eq)]
169#[derive(Clone, PartialEq, ::prost::Message)]
170pub struct BlockId {
171 #[prost(bytes = "vec", tag = "1")]
172 pub id: ::prost::alloc::vec::Vec<u8>,
173}
174#[allow(clippy::derive_partial_eq_without_eq)]
175#[derive(Clone, PartialEq, ::prost::Message)]
176pub struct Block {
177 #[prost(message, optional, tag = "1")]
178 pub block_id: ::core::option::Option<BlockId>,
179 #[prost(message, optional, tag = "2")]
180 pub block: ::core::option::Option<RawBlock>,
181}
182#[allow(clippy::derive_partial_eq_without_eq)]
183#[derive(Clone, PartialEq, ::prost::Message)]
184pub struct BlockWithMetadata {
185 #[prost(message, optional, tag = "1")]
186 pub metadata: ::core::option::Option<BlockMetadata>,
187 #[prost(message, optional, tag = "2")]
188 pub block: ::core::option::Option<RawBlock>,
189}
190#[allow(clippy::derive_partial_eq_without_eq)]
191#[derive(Clone, PartialEq, ::prost::Message)]
192pub struct BlockMetadata {
193 #[prost(message, optional, tag = "1")]
194 pub block_id: ::core::option::Option<BlockId>,
195 #[prost(message, repeated, tag = "2")]
196 pub parents: ::prost::alloc::vec::Vec<BlockId>,
197 #[prost(bool, tag = "3")]
198 pub solid: bool,
199 #[prost(bool, tag = "4")]
200 pub should_promote: bool,
201 #[prost(bool, tag = "5")]
202 pub should_reattach: bool,
203 #[prost(uint32, tag = "6")]
204 pub referenced_by_milestone_index: u32,
205 #[prost(uint32, tag = "7")]
206 pub milestone_index: u32,
207 #[prost(enumeration = "block_metadata::LedgerInclusionState", tag = "8")]
208 pub ledger_inclusion_state: i32,
209 #[prost(enumeration = "block_metadata::ConflictReason", tag = "9")]
210 pub conflict_reason: i32,
211 #[prost(uint32, tag = "10")]
212 pub white_flag_index: u32,
213}
214pub mod block_metadata {
216 #[derive(
217 Clone,
218 Copy,
219 Debug,
220 PartialEq,
221 Eq,
222 Hash,
223 PartialOrd,
224 Ord,
225 ::prost::Enumeration
226 )]
227 #[repr(i32)]
228 pub enum LedgerInclusionState {
229 NoTransaction = 0,
230 Included = 1,
231 Conflicting = 2,
232 }
233 impl LedgerInclusionState {
234 pub fn as_str_name(&self) -> &'static str {
239 match self {
240 LedgerInclusionState::NoTransaction => {
241 "LEDGER_INCLUSION_STATE_NO_TRANSACTION"
242 }
243 LedgerInclusionState::Included => "LEDGER_INCLUSION_STATE_INCLUDED",
244 LedgerInclusionState::Conflicting => "LEDGER_INCLUSION_STATE_CONFLICTING",
245 }
246 }
247 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
249 match value {
250 "LEDGER_INCLUSION_STATE_NO_TRANSACTION" => Some(Self::NoTransaction),
251 "LEDGER_INCLUSION_STATE_INCLUDED" => Some(Self::Included),
252 "LEDGER_INCLUSION_STATE_CONFLICTING" => Some(Self::Conflicting),
253 _ => None,
254 }
255 }
256 }
257 #[derive(
258 Clone,
259 Copy,
260 Debug,
261 PartialEq,
262 Eq,
263 Hash,
264 PartialOrd,
265 Ord,
266 ::prost::Enumeration
267 )]
268 #[repr(i32)]
269 pub enum ConflictReason {
270 None = 0,
271 InputAlreadySpent = 1,
272 InputAlreadySpentInThisMilestone = 2,
273 InputNotFound = 3,
274 InputOutputSumMismatch = 4,
275 InvalidSignature = 5,
276 TimelockNotExpired = 6,
277 InvalidNativeTokens = 7,
278 ReturnAmountNotFulfilled = 8,
279 InvalidInputUnlock = 9,
280 InvalidInputsCommitment = 10,
281 InvalidSender = 11,
282 InvalidChainStateTransition = 12,
283 SemanticValidationFailed = 255,
284 }
285 impl ConflictReason {
286 pub fn as_str_name(&self) -> &'static str {
291 match self {
292 ConflictReason::None => "CONFLICT_REASON_NONE",
293 ConflictReason::InputAlreadySpent => {
294 "CONFLICT_REASON_INPUT_ALREADY_SPENT"
295 }
296 ConflictReason::InputAlreadySpentInThisMilestone => {
297 "CONFLICT_REASON_INPUT_ALREADY_SPENT_IN_THIS_MILESTONE"
298 }
299 ConflictReason::InputNotFound => "CONFLICT_REASON_INPUT_NOT_FOUND",
300 ConflictReason::InputOutputSumMismatch => {
301 "CONFLICT_REASON_INPUT_OUTPUT_SUM_MISMATCH"
302 }
303 ConflictReason::InvalidSignature => "CONFLICT_REASON_INVALID_SIGNATURE",
304 ConflictReason::TimelockNotExpired => {
305 "CONFLICT_REASON_TIMELOCK_NOT_EXPIRED"
306 }
307 ConflictReason::InvalidNativeTokens => {
308 "CONFLICT_REASON_INVALID_NATIVE_TOKENS"
309 }
310 ConflictReason::ReturnAmountNotFulfilled => {
311 "CONFLICT_REASON_RETURN_AMOUNT_NOT_FULFILLED"
312 }
313 ConflictReason::InvalidInputUnlock => {
314 "CONFLICT_REASON_INVALID_INPUT_UNLOCK"
315 }
316 ConflictReason::InvalidInputsCommitment => {
317 "CONFLICT_REASON_INVALID_INPUTS_COMMITMENT"
318 }
319 ConflictReason::InvalidSender => "CONFLICT_REASON_INVALID_SENDER",
320 ConflictReason::InvalidChainStateTransition => {
321 "CONFLICT_REASON_INVALID_CHAIN_STATE_TRANSITION"
322 }
323 ConflictReason::SemanticValidationFailed => {
324 "CONFLICT_REASON_SEMANTIC_VALIDATION_FAILED"
325 }
326 }
327 }
328 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
330 match value {
331 "CONFLICT_REASON_NONE" => Some(Self::None),
332 "CONFLICT_REASON_INPUT_ALREADY_SPENT" => Some(Self::InputAlreadySpent),
333 "CONFLICT_REASON_INPUT_ALREADY_SPENT_IN_THIS_MILESTONE" => {
334 Some(Self::InputAlreadySpentInThisMilestone)
335 }
336 "CONFLICT_REASON_INPUT_NOT_FOUND" => Some(Self::InputNotFound),
337 "CONFLICT_REASON_INPUT_OUTPUT_SUM_MISMATCH" => {
338 Some(Self::InputOutputSumMismatch)
339 }
340 "CONFLICT_REASON_INVALID_SIGNATURE" => Some(Self::InvalidSignature),
341 "CONFLICT_REASON_TIMELOCK_NOT_EXPIRED" => Some(Self::TimelockNotExpired),
342 "CONFLICT_REASON_INVALID_NATIVE_TOKENS" => {
343 Some(Self::InvalidNativeTokens)
344 }
345 "CONFLICT_REASON_RETURN_AMOUNT_NOT_FULFILLED" => {
346 Some(Self::ReturnAmountNotFulfilled)
347 }
348 "CONFLICT_REASON_INVALID_INPUT_UNLOCK" => Some(Self::InvalidInputUnlock),
349 "CONFLICT_REASON_INVALID_INPUTS_COMMITMENT" => {
350 Some(Self::InvalidInputsCommitment)
351 }
352 "CONFLICT_REASON_INVALID_SENDER" => Some(Self::InvalidSender),
353 "CONFLICT_REASON_INVALID_CHAIN_STATE_TRANSITION" => {
354 Some(Self::InvalidChainStateTransition)
355 }
356 "CONFLICT_REASON_SEMANTIC_VALIDATION_FAILED" => {
357 Some(Self::SemanticValidationFailed)
358 }
359 _ => None,
360 }
361 }
362 }
363}
364#[allow(clippy::derive_partial_eq_without_eq)]
366#[derive(Clone, PartialEq, ::prost::Message)]
367pub struct TipsRequest {
368 #[prost(uint32, tag = "1")]
369 pub count: u32,
370 #[prost(bool, tag = "2")]
371 pub allow_semi_lazy: bool,
372}
373#[allow(clippy::derive_partial_eq_without_eq)]
374#[derive(Clone, PartialEq, ::prost::Message)]
375pub struct TipsResponse {
376 #[prost(message, repeated, tag = "1")]
377 pub tips: ::prost::alloc::vec::Vec<BlockId>,
378}
379#[allow(clippy::derive_partial_eq_without_eq)]
380#[derive(Clone, PartialEq, ::prost::Message)]
381pub struct TipsMetricRequest {
382 #[prost(uint32, tag = "1")]
383 pub interval_in_milliseconds: u32,
384}
385#[allow(clippy::derive_partial_eq_without_eq)]
386#[derive(Clone, PartialEq, ::prost::Message)]
387pub struct TipsMetric {
388 #[prost(uint32, tag = "1")]
389 pub non_lazy_pool_size: u32,
390 #[prost(uint32, tag = "2")]
391 pub semi_lazy_pool_size: u32,
392}
393#[allow(clippy::derive_partial_eq_without_eq)]
395#[derive(Clone, PartialEq, ::prost::Message)]
396pub struct TransactionId {
397 #[prost(bytes = "vec", tag = "1")]
398 pub id: ::prost::alloc::vec::Vec<u8>,
399}
400#[allow(clippy::derive_partial_eq_without_eq)]
401#[derive(Clone, PartialEq, ::prost::Message)]
402pub struct OutputId {
403 #[prost(bytes = "vec", tag = "1")]
404 pub id: ::prost::alloc::vec::Vec<u8>,
405}
406#[allow(clippy::derive_partial_eq_without_eq)]
407#[derive(Clone, PartialEq, ::prost::Message)]
408pub struct OutputResponse {
409 #[prost(uint32, tag = "1")]
410 pub ledger_index: u32,
411 #[prost(oneof = "output_response::Payload", tags = "2, 3")]
412 pub payload: ::core::option::Option<output_response::Payload>,
413}
414pub mod output_response {
416 #[allow(clippy::derive_partial_eq_without_eq)]
417 #[derive(Clone, PartialEq, ::prost::Oneof)]
418 pub enum Payload {
419 #[prost(message, tag = "2")]
420 Output(super::LedgerOutput),
421 #[prost(message, tag = "3")]
422 Spent(super::LedgerSpent),
423 }
424}
425#[allow(clippy::derive_partial_eq_without_eq)]
426#[derive(Clone, PartialEq, ::prost::Message)]
427pub struct UnspentOutput {
428 #[prost(uint32, tag = "1")]
429 pub ledger_index: u32,
430 #[prost(message, optional, tag = "2")]
431 pub output: ::core::option::Option<LedgerOutput>,
432}
433#[allow(clippy::derive_partial_eq_without_eq)]
434#[derive(Clone, PartialEq, ::prost::Message)]
435pub struct RawOutput {
436 #[prost(bytes = "vec", tag = "1")]
437 pub data: ::prost::alloc::vec::Vec<u8>,
438}
439#[allow(clippy::derive_partial_eq_without_eq)]
440#[derive(Clone, PartialEq, ::prost::Message)]
441pub struct LedgerOutput {
442 #[prost(message, optional, tag = "1")]
443 pub output_id: ::core::option::Option<OutputId>,
444 #[prost(message, optional, tag = "2")]
445 pub block_id: ::core::option::Option<BlockId>,
446 #[prost(uint32, tag = "3")]
447 pub milestone_index_booked: u32,
448 #[prost(uint32, tag = "4")]
449 pub milestone_timestamp_booked: u32,
450 #[prost(message, optional, tag = "5")]
451 pub output: ::core::option::Option<RawOutput>,
452}
453#[allow(clippy::derive_partial_eq_without_eq)]
454#[derive(Clone, PartialEq, ::prost::Message)]
455pub struct LedgerSpent {
456 #[prost(message, optional, tag = "1")]
457 pub output: ::core::option::Option<LedgerOutput>,
458 #[prost(message, optional, tag = "2")]
459 pub transaction_id_spent: ::core::option::Option<TransactionId>,
460 #[prost(uint32, tag = "3")]
461 pub milestone_index_spent: u32,
462 #[prost(uint32, tag = "4")]
463 pub milestone_timestamp_spent: u32,
464}
465#[allow(clippy::derive_partial_eq_without_eq)]
466#[derive(Clone, PartialEq, ::prost::Message)]
467pub struct TreasuryOutput {
468 #[prost(message, optional, tag = "1")]
469 pub milestone_id: ::core::option::Option<MilestoneId>,
470 #[prost(uint64, tag = "2")]
471 pub amount: u64,
472}
473#[allow(clippy::derive_partial_eq_without_eq)]
474#[derive(Clone, PartialEq, ::prost::Message)]
475pub struct LedgerUpdate {
476 #[prost(oneof = "ledger_update::Op", tags = "1, 2, 3")]
477 pub op: ::core::option::Option<ledger_update::Op>,
478}
479pub mod ledger_update {
481 #[allow(clippy::derive_partial_eq_without_eq)]
482 #[derive(Clone, PartialEq, ::prost::Message)]
483 pub struct Marker {
484 #[prost(uint32, tag = "1")]
485 pub milestone_index: u32,
486 #[prost(enumeration = "marker::MarkerType", tag = "2")]
487 pub marker_type: i32,
488 #[prost(uint32, tag = "3")]
489 pub consumed_count: u32,
490 #[prost(uint32, tag = "4")]
491 pub created_count: u32,
492 }
493 pub mod marker {
495 #[derive(
496 Clone,
497 Copy,
498 Debug,
499 PartialEq,
500 Eq,
501 Hash,
502 PartialOrd,
503 Ord,
504 ::prost::Enumeration
505 )]
506 #[repr(i32)]
507 pub enum MarkerType {
508 Begin = 0,
509 End = 1,
510 }
511 impl MarkerType {
512 pub fn as_str_name(&self) -> &'static str {
517 match self {
518 MarkerType::Begin => "BEGIN",
519 MarkerType::End => "END",
520 }
521 }
522 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
524 match value {
525 "BEGIN" => Some(Self::Begin),
526 "END" => Some(Self::End),
527 _ => None,
528 }
529 }
530 }
531 }
532 #[allow(clippy::derive_partial_eq_without_eq)]
533 #[derive(Clone, PartialEq, ::prost::Oneof)]
534 pub enum Op {
535 #[prost(message, tag = "1")]
536 BatchMarker(Marker),
537 #[prost(message, tag = "2")]
538 Consumed(super::LedgerSpent),
539 #[prost(message, tag = "3")]
540 Created(super::LedgerOutput),
541 }
542}
543#[allow(clippy::derive_partial_eq_without_eq)]
544#[derive(Clone, PartialEq, ::prost::Message)]
545pub struct TreasuryUpdate {
546 #[prost(uint32, tag = "1")]
547 pub milestone_index: u32,
548 #[prost(message, optional, tag = "2")]
549 pub created: ::core::option::Option<TreasuryOutput>,
550 #[prost(message, optional, tag = "3")]
551 pub consumed: ::core::option::Option<TreasuryOutput>,
552}
553#[allow(clippy::derive_partial_eq_without_eq)]
554#[derive(Clone, PartialEq, ::prost::Message)]
555pub struct RawReceipt {
556 #[prost(bytes = "vec", tag = "1")]
557 pub data: ::prost::alloc::vec::Vec<u8>,
558}
559#[allow(clippy::derive_partial_eq_without_eq)]
561#[derive(Clone, PartialEq, ::prost::Message)]
562pub struct ApiRouteRequest {
563 #[prost(string, tag = "1")]
564 pub route: ::prost::alloc::string::String,
565 #[prost(string, tag = "2")]
566 pub host: ::prost::alloc::string::String,
567 #[prost(uint32, tag = "3")]
568 pub port: u32,
569}
570#[allow(clippy::derive_partial_eq_without_eq)]
571#[derive(Clone, PartialEq, ::prost::Message)]
572pub struct ApiRequest {
573 #[prost(string, tag = "1")]
574 pub method: ::prost::alloc::string::String,
575 #[prost(string, tag = "2")]
576 pub path: ::prost::alloc::string::String,
577 #[prost(map = "string, string", tag = "3")]
578 pub headers: ::std::collections::HashMap<
579 ::prost::alloc::string::String,
580 ::prost::alloc::string::String,
581 >,
582 #[prost(bytes = "vec", tag = "4")]
583 pub body: ::prost::alloc::vec::Vec<u8>,
584}
585#[allow(clippy::derive_partial_eq_without_eq)]
586#[derive(Clone, PartialEq, ::prost::Message)]
587pub struct ApiResponse {
588 #[prost(uint32, tag = "1")]
589 pub code: u32,
590 #[prost(map = "string, string", tag = "2")]
591 pub headers: ::std::collections::HashMap<
592 ::prost::alloc::string::String,
593 ::prost::alloc::string::String,
594 >,
595 #[prost(bytes = "vec", tag = "3")]
596 pub body: ::prost::alloc::vec::Vec<u8>,
597}
598pub mod inx_client {
600 #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
601 use tonic::codegen::*;
602 use tonic::codegen::http::Uri;
603 #[derive(Debug, Clone)]
604 pub struct InxClient<T> {
605 inner: tonic::client::Grpc<T>,
606 }
607 impl InxClient<tonic::transport::Channel> {
608 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
610 where
611 D: std::convert::TryInto<tonic::transport::Endpoint>,
612 D::Error: Into<StdError>,
613 {
614 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
615 Ok(Self::new(conn))
616 }
617 }
618 impl<T> InxClient<T>
619 where
620 T: tonic::client::GrpcService<tonic::body::BoxBody>,
621 T::Error: Into<StdError>,
622 T::ResponseBody: Body<Data = Bytes> + Send + 'static,
623 <T::ResponseBody as Body>::Error: Into<StdError> + Send,
624 {
625 pub fn new(inner: T) -> Self {
626 let inner = tonic::client::Grpc::new(inner);
627 Self { inner }
628 }
629 pub fn with_origin(inner: T, origin: Uri) -> Self {
630 let inner = tonic::client::Grpc::with_origin(inner, origin);
631 Self { inner }
632 }
633 pub fn with_interceptor<F>(
634 inner: T,
635 interceptor: F,
636 ) -> InxClient<InterceptedService<T, F>>
637 where
638 F: tonic::service::Interceptor,
639 T::ResponseBody: Default,
640 T: tonic::codegen::Service<
641 http::Request<tonic::body::BoxBody>,
642 Response = http::Response<
643 <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
644 >,
645 >,
646 <T as tonic::codegen::Service<
647 http::Request<tonic::body::BoxBody>,
648 >>::Error: Into<StdError> + Send + Sync,
649 {
650 InxClient::new(InterceptedService::new(inner, interceptor))
651 }
652 #[must_use]
657 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
658 self.inner = self.inner.send_compressed(encoding);
659 self
660 }
661 #[must_use]
663 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
664 self.inner = self.inner.accept_compressed(encoding);
665 self
666 }
667 pub async fn read_node_status(
669 &mut self,
670 request: impl tonic::IntoRequest<super::NoParams>,
671 ) -> Result<tonic::Response<super::NodeStatus>, tonic::Status> {
672 self.inner
673 .ready()
674 .await
675 .map_err(|e| {
676 tonic::Status::new(
677 tonic::Code::Unknown,
678 format!("Service was not ready: {}", e.into()),
679 )
680 })?;
681 let codec = tonic::codec::ProstCodec::default();
682 let path = http::uri::PathAndQuery::from_static("/inx.INX/ReadNodeStatus");
683 self.inner.unary(request.into_request(), path, codec).await
684 }
685 pub async fn listen_to_node_status(
686 &mut self,
687 request: impl tonic::IntoRequest<super::NodeStatusRequest>,
688 ) -> Result<
689 tonic::Response<tonic::codec::Streaming<super::NodeStatus>>,
690 tonic::Status,
691 > {
692 self.inner
693 .ready()
694 .await
695 .map_err(|e| {
696 tonic::Status::new(
697 tonic::Code::Unknown,
698 format!("Service was not ready: {}", e.into()),
699 )
700 })?;
701 let codec = tonic::codec::ProstCodec::default();
702 let path = http::uri::PathAndQuery::from_static(
703 "/inx.INX/ListenToNodeStatus",
704 );
705 self.inner.server_streaming(request.into_request(), path, codec).await
706 }
707 pub async fn read_node_configuration(
708 &mut self,
709 request: impl tonic::IntoRequest<super::NoParams>,
710 ) -> Result<tonic::Response<super::NodeConfiguration>, tonic::Status> {
711 self.inner
712 .ready()
713 .await
714 .map_err(|e| {
715 tonic::Status::new(
716 tonic::Code::Unknown,
717 format!("Service was not ready: {}", e.into()),
718 )
719 })?;
720 let codec = tonic::codec::ProstCodec::default();
721 let path = http::uri::PathAndQuery::from_static(
722 "/inx.INX/ReadNodeConfiguration",
723 );
724 self.inner.unary(request.into_request(), path, codec).await
725 }
726 pub async fn read_protocol_parameters(
727 &mut self,
728 request: impl tonic::IntoRequest<super::MilestoneRequest>,
729 ) -> Result<tonic::Response<super::RawProtocolParameters>, tonic::Status> {
730 self.inner
731 .ready()
732 .await
733 .map_err(|e| {
734 tonic::Status::new(
735 tonic::Code::Unknown,
736 format!("Service was not ready: {}", e.into()),
737 )
738 })?;
739 let codec = tonic::codec::ProstCodec::default();
740 let path = http::uri::PathAndQuery::from_static(
741 "/inx.INX/ReadProtocolParameters",
742 );
743 self.inner.unary(request.into_request(), path, codec).await
744 }
745 pub async fn read_milestone(
747 &mut self,
748 request: impl tonic::IntoRequest<super::MilestoneRequest>,
749 ) -> Result<tonic::Response<super::Milestone>, tonic::Status> {
750 self.inner
751 .ready()
752 .await
753 .map_err(|e| {
754 tonic::Status::new(
755 tonic::Code::Unknown,
756 format!("Service was not ready: {}", e.into()),
757 )
758 })?;
759 let codec = tonic::codec::ProstCodec::default();
760 let path = http::uri::PathAndQuery::from_static("/inx.INX/ReadMilestone");
761 self.inner.unary(request.into_request(), path, codec).await
762 }
763 pub async fn listen_to_latest_milestones(
764 &mut self,
765 request: impl tonic::IntoRequest<super::NoParams>,
766 ) -> Result<
767 tonic::Response<tonic::codec::Streaming<super::Milestone>>,
768 tonic::Status,
769 > {
770 self.inner
771 .ready()
772 .await
773 .map_err(|e| {
774 tonic::Status::new(
775 tonic::Code::Unknown,
776 format!("Service was not ready: {}", e.into()),
777 )
778 })?;
779 let codec = tonic::codec::ProstCodec::default();
780 let path = http::uri::PathAndQuery::from_static(
781 "/inx.INX/ListenToLatestMilestones",
782 );
783 self.inner.server_streaming(request.into_request(), path, codec).await
784 }
785 pub async fn listen_to_confirmed_milestones(
786 &mut self,
787 request: impl tonic::IntoRequest<super::MilestoneRangeRequest>,
788 ) -> Result<
789 tonic::Response<
790 tonic::codec::Streaming<super::MilestoneAndProtocolParameters>,
791 >,
792 tonic::Status,
793 > {
794 self.inner
795 .ready()
796 .await
797 .map_err(|e| {
798 tonic::Status::new(
799 tonic::Code::Unknown,
800 format!("Service was not ready: {}", e.into()),
801 )
802 })?;
803 let codec = tonic::codec::ProstCodec::default();
804 let path = http::uri::PathAndQuery::from_static(
805 "/inx.INX/ListenToConfirmedMilestones",
806 );
807 self.inner.server_streaming(request.into_request(), path, codec).await
808 }
809 pub async fn compute_white_flag(
810 &mut self,
811 request: impl tonic::IntoRequest<super::WhiteFlagRequest>,
812 ) -> Result<tonic::Response<super::WhiteFlagResponse>, tonic::Status> {
813 self.inner
814 .ready()
815 .await
816 .map_err(|e| {
817 tonic::Status::new(
818 tonic::Code::Unknown,
819 format!("Service was not ready: {}", e.into()),
820 )
821 })?;
822 let codec = tonic::codec::ProstCodec::default();
823 let path = http::uri::PathAndQuery::from_static("/inx.INX/ComputeWhiteFlag");
824 self.inner.unary(request.into_request(), path, codec).await
825 }
826 pub async fn read_milestone_cone(
827 &mut self,
828 request: impl tonic::IntoRequest<super::MilestoneRequest>,
829 ) -> Result<
830 tonic::Response<tonic::codec::Streaming<super::BlockWithMetadata>>,
831 tonic::Status,
832 > {
833 self.inner
834 .ready()
835 .await
836 .map_err(|e| {
837 tonic::Status::new(
838 tonic::Code::Unknown,
839 format!("Service was not ready: {}", e.into()),
840 )
841 })?;
842 let codec = tonic::codec::ProstCodec::default();
843 let path = http::uri::PathAndQuery::from_static(
844 "/inx.INX/ReadMilestoneCone",
845 );
846 self.inner.server_streaming(request.into_request(), path, codec).await
847 }
848 pub async fn read_milestone_cone_metadata(
849 &mut self,
850 request: impl tonic::IntoRequest<super::MilestoneRequest>,
851 ) -> Result<
852 tonic::Response<tonic::codec::Streaming<super::BlockMetadata>>,
853 tonic::Status,
854 > {
855 self.inner
856 .ready()
857 .await
858 .map_err(|e| {
859 tonic::Status::new(
860 tonic::Code::Unknown,
861 format!("Service was not ready: {}", e.into()),
862 )
863 })?;
864 let codec = tonic::codec::ProstCodec::default();
865 let path = http::uri::PathAndQuery::from_static(
866 "/inx.INX/ReadMilestoneConeMetadata",
867 );
868 self.inner.server_streaming(request.into_request(), path, codec).await
869 }
870 pub async fn listen_to_blocks(
872 &mut self,
873 request: impl tonic::IntoRequest<super::NoParams>,
874 ) -> Result<
875 tonic::Response<tonic::codec::Streaming<super::Block>>,
876 tonic::Status,
877 > {
878 self.inner
879 .ready()
880 .await
881 .map_err(|e| {
882 tonic::Status::new(
883 tonic::Code::Unknown,
884 format!("Service was not ready: {}", e.into()),
885 )
886 })?;
887 let codec = tonic::codec::ProstCodec::default();
888 let path = http::uri::PathAndQuery::from_static("/inx.INX/ListenToBlocks");
889 self.inner.server_streaming(request.into_request(), path, codec).await
890 }
891 pub async fn listen_to_solid_blocks(
892 &mut self,
893 request: impl tonic::IntoRequest<super::NoParams>,
894 ) -> Result<
895 tonic::Response<tonic::codec::Streaming<super::BlockMetadata>>,
896 tonic::Status,
897 > {
898 self.inner
899 .ready()
900 .await
901 .map_err(|e| {
902 tonic::Status::new(
903 tonic::Code::Unknown,
904 format!("Service was not ready: {}", e.into()),
905 )
906 })?;
907 let codec = tonic::codec::ProstCodec::default();
908 let path = http::uri::PathAndQuery::from_static(
909 "/inx.INX/ListenToSolidBlocks",
910 );
911 self.inner.server_streaming(request.into_request(), path, codec).await
912 }
913 pub async fn listen_to_referenced_blocks(
914 &mut self,
915 request: impl tonic::IntoRequest<super::NoParams>,
916 ) -> Result<
917 tonic::Response<tonic::codec::Streaming<super::BlockMetadata>>,
918 tonic::Status,
919 > {
920 self.inner
921 .ready()
922 .await
923 .map_err(|e| {
924 tonic::Status::new(
925 tonic::Code::Unknown,
926 format!("Service was not ready: {}", e.into()),
927 )
928 })?;
929 let codec = tonic::codec::ProstCodec::default();
930 let path = http::uri::PathAndQuery::from_static(
931 "/inx.INX/ListenToReferencedBlocks",
932 );
933 self.inner.server_streaming(request.into_request(), path, codec).await
934 }
935 pub async fn submit_block(
936 &mut self,
937 request: impl tonic::IntoRequest<super::RawBlock>,
938 ) -> Result<tonic::Response<super::BlockId>, tonic::Status> {
939 self.inner
940 .ready()
941 .await
942 .map_err(|e| {
943 tonic::Status::new(
944 tonic::Code::Unknown,
945 format!("Service was not ready: {}", e.into()),
946 )
947 })?;
948 let codec = tonic::codec::ProstCodec::default();
949 let path = http::uri::PathAndQuery::from_static("/inx.INX/SubmitBlock");
950 self.inner.unary(request.into_request(), path, codec).await
951 }
952 pub async fn read_block(
953 &mut self,
954 request: impl tonic::IntoRequest<super::BlockId>,
955 ) -> Result<tonic::Response<super::RawBlock>, tonic::Status> {
956 self.inner
957 .ready()
958 .await
959 .map_err(|e| {
960 tonic::Status::new(
961 tonic::Code::Unknown,
962 format!("Service was not ready: {}", e.into()),
963 )
964 })?;
965 let codec = tonic::codec::ProstCodec::default();
966 let path = http::uri::PathAndQuery::from_static("/inx.INX/ReadBlock");
967 self.inner.unary(request.into_request(), path, codec).await
968 }
969 pub async fn read_block_metadata(
970 &mut self,
971 request: impl tonic::IntoRequest<super::BlockId>,
972 ) -> Result<tonic::Response<super::BlockMetadata>, tonic::Status> {
973 self.inner
974 .ready()
975 .await
976 .map_err(|e| {
977 tonic::Status::new(
978 tonic::Code::Unknown,
979 format!("Service was not ready: {}", e.into()),
980 )
981 })?;
982 let codec = tonic::codec::ProstCodec::default();
983 let path = http::uri::PathAndQuery::from_static(
984 "/inx.INX/ReadBlockMetadata",
985 );
986 self.inner.unary(request.into_request(), path, codec).await
987 }
988 pub async fn request_tips(
990 &mut self,
991 request: impl tonic::IntoRequest<super::TipsRequest>,
992 ) -> Result<tonic::Response<super::TipsResponse>, tonic::Status> {
993 self.inner
994 .ready()
995 .await
996 .map_err(|e| {
997 tonic::Status::new(
998 tonic::Code::Unknown,
999 format!("Service was not ready: {}", e.into()),
1000 )
1001 })?;
1002 let codec = tonic::codec::ProstCodec::default();
1003 let path = http::uri::PathAndQuery::from_static("/inx.INX/RequestTips");
1004 self.inner.unary(request.into_request(), path, codec).await
1005 }
1006 pub async fn listen_to_tips_metrics(
1007 &mut self,
1008 request: impl tonic::IntoRequest<super::TipsMetricRequest>,
1009 ) -> Result<
1010 tonic::Response<tonic::codec::Streaming<super::TipsMetric>>,
1011 tonic::Status,
1012 > {
1013 self.inner
1014 .ready()
1015 .await
1016 .map_err(|e| {
1017 tonic::Status::new(
1018 tonic::Code::Unknown,
1019 format!("Service was not ready: {}", e.into()),
1020 )
1021 })?;
1022 let codec = tonic::codec::ProstCodec::default();
1023 let path = http::uri::PathAndQuery::from_static(
1024 "/inx.INX/ListenToTipsMetrics",
1025 );
1026 self.inner.server_streaming(request.into_request(), path, codec).await
1027 }
1028 pub async fn listen_to_tip_score_updates(
1029 &mut self,
1030 request: impl tonic::IntoRequest<super::NoParams>,
1031 ) -> Result<
1032 tonic::Response<tonic::codec::Streaming<super::BlockMetadata>>,
1033 tonic::Status,
1034 > {
1035 self.inner
1036 .ready()
1037 .await
1038 .map_err(|e| {
1039 tonic::Status::new(
1040 tonic::Code::Unknown,
1041 format!("Service was not ready: {}", e.into()),
1042 )
1043 })?;
1044 let codec = tonic::codec::ProstCodec::default();
1045 let path = http::uri::PathAndQuery::from_static(
1046 "/inx.INX/ListenToTipScoreUpdates",
1047 );
1048 self.inner.server_streaming(request.into_request(), path, codec).await
1049 }
1050 pub async fn read_unspent_outputs(
1052 &mut self,
1053 request: impl tonic::IntoRequest<super::NoParams>,
1054 ) -> Result<
1055 tonic::Response<tonic::codec::Streaming<super::UnspentOutput>>,
1056 tonic::Status,
1057 > {
1058 self.inner
1059 .ready()
1060 .await
1061 .map_err(|e| {
1062 tonic::Status::new(
1063 tonic::Code::Unknown,
1064 format!("Service was not ready: {}", e.into()),
1065 )
1066 })?;
1067 let codec = tonic::codec::ProstCodec::default();
1068 let path = http::uri::PathAndQuery::from_static(
1069 "/inx.INX/ReadUnspentOutputs",
1070 );
1071 self.inner.server_streaming(request.into_request(), path, codec).await
1072 }
1073 pub async fn listen_to_ledger_updates(
1078 &mut self,
1079 request: impl tonic::IntoRequest<super::MilestoneRangeRequest>,
1080 ) -> Result<
1081 tonic::Response<tonic::codec::Streaming<super::LedgerUpdate>>,
1082 tonic::Status,
1083 > {
1084 self.inner
1085 .ready()
1086 .await
1087 .map_err(|e| {
1088 tonic::Status::new(
1089 tonic::Code::Unknown,
1090 format!("Service was not ready: {}", e.into()),
1091 )
1092 })?;
1093 let codec = tonic::codec::ProstCodec::default();
1094 let path = http::uri::PathAndQuery::from_static(
1095 "/inx.INX/ListenToLedgerUpdates",
1096 );
1097 self.inner.server_streaming(request.into_request(), path, codec).await
1098 }
1099 pub async fn listen_to_treasury_updates(
1100 &mut self,
1101 request: impl tonic::IntoRequest<super::MilestoneRangeRequest>,
1102 ) -> Result<
1103 tonic::Response<tonic::codec::Streaming<super::TreasuryUpdate>>,
1104 tonic::Status,
1105 > {
1106 self.inner
1107 .ready()
1108 .await
1109 .map_err(|e| {
1110 tonic::Status::new(
1111 tonic::Code::Unknown,
1112 format!("Service was not ready: {}", e.into()),
1113 )
1114 })?;
1115 let codec = tonic::codec::ProstCodec::default();
1116 let path = http::uri::PathAndQuery::from_static(
1117 "/inx.INX/ListenToTreasuryUpdates",
1118 );
1119 self.inner.server_streaming(request.into_request(), path, codec).await
1120 }
1121 pub async fn read_output(
1122 &mut self,
1123 request: impl tonic::IntoRequest<super::OutputId>,
1124 ) -> Result<tonic::Response<super::OutputResponse>, tonic::Status> {
1125 self.inner
1126 .ready()
1127 .await
1128 .map_err(|e| {
1129 tonic::Status::new(
1130 tonic::Code::Unknown,
1131 format!("Service was not ready: {}", e.into()),
1132 )
1133 })?;
1134 let codec = tonic::codec::ProstCodec::default();
1135 let path = http::uri::PathAndQuery::from_static("/inx.INX/ReadOutput");
1136 self.inner.unary(request.into_request(), path, codec).await
1137 }
1138 pub async fn listen_to_migration_receipts(
1139 &mut self,
1140 request: impl tonic::IntoRequest<super::NoParams>,
1141 ) -> Result<
1142 tonic::Response<tonic::codec::Streaming<super::RawReceipt>>,
1143 tonic::Status,
1144 > {
1145 self.inner
1146 .ready()
1147 .await
1148 .map_err(|e| {
1149 tonic::Status::new(
1150 tonic::Code::Unknown,
1151 format!("Service was not ready: {}", e.into()),
1152 )
1153 })?;
1154 let codec = tonic::codec::ProstCodec::default();
1155 let path = http::uri::PathAndQuery::from_static(
1156 "/inx.INX/ListenToMigrationReceipts",
1157 );
1158 self.inner.server_streaming(request.into_request(), path, codec).await
1159 }
1160 pub async fn register_api_route(
1162 &mut self,
1163 request: impl tonic::IntoRequest<super::ApiRouteRequest>,
1164 ) -> Result<tonic::Response<super::NoParams>, tonic::Status> {
1165 self.inner
1166 .ready()
1167 .await
1168 .map_err(|e| {
1169 tonic::Status::new(
1170 tonic::Code::Unknown,
1171 format!("Service was not ready: {}", e.into()),
1172 )
1173 })?;
1174 let codec = tonic::codec::ProstCodec::default();
1175 let path = http::uri::PathAndQuery::from_static("/inx.INX/RegisterAPIRoute");
1176 self.inner.unary(request.into_request(), path, codec).await
1177 }
1178 pub async fn unregister_api_route(
1179 &mut self,
1180 request: impl tonic::IntoRequest<super::ApiRouteRequest>,
1181 ) -> Result<tonic::Response<super::NoParams>, tonic::Status> {
1182 self.inner
1183 .ready()
1184 .await
1185 .map_err(|e| {
1186 tonic::Status::new(
1187 tonic::Code::Unknown,
1188 format!("Service was not ready: {}", e.into()),
1189 )
1190 })?;
1191 let codec = tonic::codec::ProstCodec::default();
1192 let path = http::uri::PathAndQuery::from_static(
1193 "/inx.INX/UnregisterAPIRoute",
1194 );
1195 self.inner.unary(request.into_request(), path, codec).await
1196 }
1197 pub async fn perform_api_request(
1198 &mut self,
1199 request: impl tonic::IntoRequest<super::ApiRequest>,
1200 ) -> Result<tonic::Response<super::ApiResponse>, tonic::Status> {
1201 self.inner
1202 .ready()
1203 .await
1204 .map_err(|e| {
1205 tonic::Status::new(
1206 tonic::Code::Unknown,
1207 format!("Service was not ready: {}", e.into()),
1208 )
1209 })?;
1210 let codec = tonic::codec::ProstCodec::default();
1211 let path = http::uri::PathAndQuery::from_static(
1212 "/inx.INX/PerformAPIRequest",
1213 );
1214 self.inner.unary(request.into_request(), path, codec).await
1215 }
1216 }
1217}