anychain_tron/protocol/
shield_contract.rs

1// This file is generated by rust-protobuf 3.3.0. Do not edit
2// .proto file is parsed by protoc --rust-out=...
3// @generated
4
5// https://github.com/rust-lang/rust-clippy/issues/702
6#![allow(unknown_lints)]
7#![allow(clippy::all)]
8
9#![allow(unused_attributes)]
10#![cfg_attr(rustfmt, rustfmt::skip)]
11
12#![allow(dead_code)]
13#![allow(missing_docs)]
14#![allow(non_camel_case_types)]
15#![allow(non_snake_case)]
16#![allow(non_upper_case_globals)]
17#![allow(trivial_casts)]
18#![allow(unused_results)]
19#![allow(unused_mut)]
20
21//! Generated file from `core/contract/shield_contract.proto`
22
23/// Generated files are compatible only with the same version
24/// of protobuf runtime.
25const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_3_7_2;
26
27// @@protoc_insertion_point(message:protocol.AuthenticationPath)
28#[derive(PartialEq,Clone,Default,Debug)]
29pub struct AuthenticationPath {
30    // message fields
31    // @@protoc_insertion_point(field:protocol.AuthenticationPath.value)
32    pub value: ::std::vec::Vec<bool>,
33    // special fields
34    // @@protoc_insertion_point(special_field:protocol.AuthenticationPath.special_fields)
35    pub special_fields: ::protobuf::SpecialFields,
36}
37
38impl<'a> ::std::default::Default for &'a AuthenticationPath {
39    fn default() -> &'a AuthenticationPath {
40        <AuthenticationPath as ::protobuf::Message>::default_instance()
41    }
42}
43
44impl AuthenticationPath {
45    pub fn new() -> AuthenticationPath {
46        ::std::default::Default::default()
47    }
48
49    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
50        let mut fields = ::std::vec::Vec::with_capacity(1);
51        let mut oneofs = ::std::vec::Vec::with_capacity(0);
52        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
53            "value",
54            |m: &AuthenticationPath| { &m.value },
55            |m: &mut AuthenticationPath| { &mut m.value },
56        ));
57        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<AuthenticationPath>(
58            "AuthenticationPath",
59            fields,
60            oneofs,
61        )
62    }
63}
64
65impl ::protobuf::Message for AuthenticationPath {
66    const NAME: &'static str = "AuthenticationPath";
67
68    fn is_initialized(&self) -> bool {
69        true
70    }
71
72    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
73        while let Some(tag) = is.read_raw_tag_or_eof()? {
74            match tag {
75                10 => {
76                    is.read_repeated_packed_bool_into(&mut self.value)?;
77                },
78                8 => {
79                    self.value.push(is.read_bool()?);
80                },
81                tag => {
82                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
83                },
84            };
85        }
86        ::std::result::Result::Ok(())
87    }
88
89    // Compute sizes of nested messages
90    #[allow(unused_variables)]
91    fn compute_size(&self) -> u64 {
92        let mut my_size = 0;
93        my_size += 2 * self.value.len() as u64;
94        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
95        self.special_fields.cached_size().set(my_size as u32);
96        my_size
97    }
98
99    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
100        for v in &self.value {
101            os.write_bool(1, *v)?;
102        };
103        os.write_unknown_fields(self.special_fields.unknown_fields())?;
104        ::std::result::Result::Ok(())
105    }
106
107    fn special_fields(&self) -> &::protobuf::SpecialFields {
108        &self.special_fields
109    }
110
111    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
112        &mut self.special_fields
113    }
114
115    fn new() -> AuthenticationPath {
116        AuthenticationPath::new()
117    }
118
119    fn clear(&mut self) {
120        self.value.clear();
121        self.special_fields.clear();
122    }
123
124    fn default_instance() -> &'static AuthenticationPath {
125        static instance: AuthenticationPath = AuthenticationPath {
126            value: ::std::vec::Vec::new(),
127            special_fields: ::protobuf::SpecialFields::new(),
128        };
129        &instance
130    }
131}
132
133impl ::protobuf::MessageFull for AuthenticationPath {
134    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
135        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
136        descriptor.get(|| file_descriptor().message_by_package_relative_name("AuthenticationPath").unwrap()).clone()
137    }
138}
139
140impl ::std::fmt::Display for AuthenticationPath {
141    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
142        ::protobuf::text_format::fmt(self, f)
143    }
144}
145
146impl ::protobuf::reflect::ProtobufValue for AuthenticationPath {
147    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
148}
149
150// @@protoc_insertion_point(message:protocol.MerklePath)
151#[derive(PartialEq,Clone,Default,Debug)]
152pub struct MerklePath {
153    // message fields
154    // @@protoc_insertion_point(field:protocol.MerklePath.authentication_paths)
155    pub authentication_paths: ::std::vec::Vec<AuthenticationPath>,
156    // @@protoc_insertion_point(field:protocol.MerklePath.index)
157    pub index: ::std::vec::Vec<bool>,
158    // @@protoc_insertion_point(field:protocol.MerklePath.rt)
159    pub rt: ::std::vec::Vec<u8>,
160    // special fields
161    // @@protoc_insertion_point(special_field:protocol.MerklePath.special_fields)
162    pub special_fields: ::protobuf::SpecialFields,
163}
164
165impl<'a> ::std::default::Default for &'a MerklePath {
166    fn default() -> &'a MerklePath {
167        <MerklePath as ::protobuf::Message>::default_instance()
168    }
169}
170
171impl MerklePath {
172    pub fn new() -> MerklePath {
173        ::std::default::Default::default()
174    }
175
176    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
177        let mut fields = ::std::vec::Vec::with_capacity(3);
178        let mut oneofs = ::std::vec::Vec::with_capacity(0);
179        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
180            "authentication_paths",
181            |m: &MerklePath| { &m.authentication_paths },
182            |m: &mut MerklePath| { &mut m.authentication_paths },
183        ));
184        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
185            "index",
186            |m: &MerklePath| { &m.index },
187            |m: &mut MerklePath| { &mut m.index },
188        ));
189        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
190            "rt",
191            |m: &MerklePath| { &m.rt },
192            |m: &mut MerklePath| { &mut m.rt },
193        ));
194        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<MerklePath>(
195            "MerklePath",
196            fields,
197            oneofs,
198        )
199    }
200}
201
202impl ::protobuf::Message for MerklePath {
203    const NAME: &'static str = "MerklePath";
204
205    fn is_initialized(&self) -> bool {
206        true
207    }
208
209    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
210        while let Some(tag) = is.read_raw_tag_or_eof()? {
211            match tag {
212                10 => {
213                    self.authentication_paths.push(is.read_message()?);
214                },
215                18 => {
216                    is.read_repeated_packed_bool_into(&mut self.index)?;
217                },
218                16 => {
219                    self.index.push(is.read_bool()?);
220                },
221                26 => {
222                    self.rt = is.read_bytes()?;
223                },
224                tag => {
225                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
226                },
227            };
228        }
229        ::std::result::Result::Ok(())
230    }
231
232    // Compute sizes of nested messages
233    #[allow(unused_variables)]
234    fn compute_size(&self) -> u64 {
235        let mut my_size = 0;
236        for value in &self.authentication_paths {
237            let len = value.compute_size();
238            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
239        };
240        my_size += 2 * self.index.len() as u64;
241        if !self.rt.is_empty() {
242            my_size += ::protobuf::rt::bytes_size(3, &self.rt);
243        }
244        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
245        self.special_fields.cached_size().set(my_size as u32);
246        my_size
247    }
248
249    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
250        for v in &self.authentication_paths {
251            ::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
252        };
253        for v in &self.index {
254            os.write_bool(2, *v)?;
255        };
256        if !self.rt.is_empty() {
257            os.write_bytes(3, &self.rt)?;
258        }
259        os.write_unknown_fields(self.special_fields.unknown_fields())?;
260        ::std::result::Result::Ok(())
261    }
262
263    fn special_fields(&self) -> &::protobuf::SpecialFields {
264        &self.special_fields
265    }
266
267    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
268        &mut self.special_fields
269    }
270
271    fn new() -> MerklePath {
272        MerklePath::new()
273    }
274
275    fn clear(&mut self) {
276        self.authentication_paths.clear();
277        self.index.clear();
278        self.rt.clear();
279        self.special_fields.clear();
280    }
281
282    fn default_instance() -> &'static MerklePath {
283        static instance: MerklePath = MerklePath {
284            authentication_paths: ::std::vec::Vec::new(),
285            index: ::std::vec::Vec::new(),
286            rt: ::std::vec::Vec::new(),
287            special_fields: ::protobuf::SpecialFields::new(),
288        };
289        &instance
290    }
291}
292
293impl ::protobuf::MessageFull for MerklePath {
294    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
295        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
296        descriptor.get(|| file_descriptor().message_by_package_relative_name("MerklePath").unwrap()).clone()
297    }
298}
299
300impl ::std::fmt::Display for MerklePath {
301    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
302        ::protobuf::text_format::fmt(self, f)
303    }
304}
305
306impl ::protobuf::reflect::ProtobufValue for MerklePath {
307    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
308}
309
310// @@protoc_insertion_point(message:protocol.OutputPoint)
311#[derive(PartialEq,Clone,Default,Debug)]
312pub struct OutputPoint {
313    // message fields
314    // @@protoc_insertion_point(field:protocol.OutputPoint.hash)
315    pub hash: ::std::vec::Vec<u8>,
316    // @@protoc_insertion_point(field:protocol.OutputPoint.index)
317    pub index: i32,
318    // special fields
319    // @@protoc_insertion_point(special_field:protocol.OutputPoint.special_fields)
320    pub special_fields: ::protobuf::SpecialFields,
321}
322
323impl<'a> ::std::default::Default for &'a OutputPoint {
324    fn default() -> &'a OutputPoint {
325        <OutputPoint as ::protobuf::Message>::default_instance()
326    }
327}
328
329impl OutputPoint {
330    pub fn new() -> OutputPoint {
331        ::std::default::Default::default()
332    }
333
334    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
335        let mut fields = ::std::vec::Vec::with_capacity(2);
336        let mut oneofs = ::std::vec::Vec::with_capacity(0);
337        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
338            "hash",
339            |m: &OutputPoint| { &m.hash },
340            |m: &mut OutputPoint| { &mut m.hash },
341        ));
342        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
343            "index",
344            |m: &OutputPoint| { &m.index },
345            |m: &mut OutputPoint| { &mut m.index },
346        ));
347        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<OutputPoint>(
348            "OutputPoint",
349            fields,
350            oneofs,
351        )
352    }
353}
354
355impl ::protobuf::Message for OutputPoint {
356    const NAME: &'static str = "OutputPoint";
357
358    fn is_initialized(&self) -> bool {
359        true
360    }
361
362    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
363        while let Some(tag) = is.read_raw_tag_or_eof()? {
364            match tag {
365                10 => {
366                    self.hash = is.read_bytes()?;
367                },
368                16 => {
369                    self.index = is.read_int32()?;
370                },
371                tag => {
372                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
373                },
374            };
375        }
376        ::std::result::Result::Ok(())
377    }
378
379    // Compute sizes of nested messages
380    #[allow(unused_variables)]
381    fn compute_size(&self) -> u64 {
382        let mut my_size = 0;
383        if !self.hash.is_empty() {
384            my_size += ::protobuf::rt::bytes_size(1, &self.hash);
385        }
386        if self.index != 0 {
387            my_size += ::protobuf::rt::int32_size(2, self.index);
388        }
389        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
390        self.special_fields.cached_size().set(my_size as u32);
391        my_size
392    }
393
394    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
395        if !self.hash.is_empty() {
396            os.write_bytes(1, &self.hash)?;
397        }
398        if self.index != 0 {
399            os.write_int32(2, self.index)?;
400        }
401        os.write_unknown_fields(self.special_fields.unknown_fields())?;
402        ::std::result::Result::Ok(())
403    }
404
405    fn special_fields(&self) -> &::protobuf::SpecialFields {
406        &self.special_fields
407    }
408
409    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
410        &mut self.special_fields
411    }
412
413    fn new() -> OutputPoint {
414        OutputPoint::new()
415    }
416
417    fn clear(&mut self) {
418        self.hash.clear();
419        self.index = 0;
420        self.special_fields.clear();
421    }
422
423    fn default_instance() -> &'static OutputPoint {
424        static instance: OutputPoint = OutputPoint {
425            hash: ::std::vec::Vec::new(),
426            index: 0,
427            special_fields: ::protobuf::SpecialFields::new(),
428        };
429        &instance
430    }
431}
432
433impl ::protobuf::MessageFull for OutputPoint {
434    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
435        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
436        descriptor.get(|| file_descriptor().message_by_package_relative_name("OutputPoint").unwrap()).clone()
437    }
438}
439
440impl ::std::fmt::Display for OutputPoint {
441    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
442        ::protobuf::text_format::fmt(self, f)
443    }
444}
445
446impl ::protobuf::reflect::ProtobufValue for OutputPoint {
447    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
448}
449
450// @@protoc_insertion_point(message:protocol.OutputPointInfo)
451#[derive(PartialEq,Clone,Default,Debug)]
452pub struct OutputPointInfo {
453    // message fields
454    // @@protoc_insertion_point(field:protocol.OutputPointInfo.out_points)
455    pub out_points: ::std::vec::Vec<OutputPoint>,
456    // @@protoc_insertion_point(field:protocol.OutputPointInfo.block_num)
457    pub block_num: i32,
458    // special fields
459    // @@protoc_insertion_point(special_field:protocol.OutputPointInfo.special_fields)
460    pub special_fields: ::protobuf::SpecialFields,
461}
462
463impl<'a> ::std::default::Default for &'a OutputPointInfo {
464    fn default() -> &'a OutputPointInfo {
465        <OutputPointInfo as ::protobuf::Message>::default_instance()
466    }
467}
468
469impl OutputPointInfo {
470    pub fn new() -> OutputPointInfo {
471        ::std::default::Default::default()
472    }
473
474    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
475        let mut fields = ::std::vec::Vec::with_capacity(2);
476        let mut oneofs = ::std::vec::Vec::with_capacity(0);
477        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
478            "out_points",
479            |m: &OutputPointInfo| { &m.out_points },
480            |m: &mut OutputPointInfo| { &mut m.out_points },
481        ));
482        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
483            "block_num",
484            |m: &OutputPointInfo| { &m.block_num },
485            |m: &mut OutputPointInfo| { &mut m.block_num },
486        ));
487        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<OutputPointInfo>(
488            "OutputPointInfo",
489            fields,
490            oneofs,
491        )
492    }
493}
494
495impl ::protobuf::Message for OutputPointInfo {
496    const NAME: &'static str = "OutputPointInfo";
497
498    fn is_initialized(&self) -> bool {
499        true
500    }
501
502    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
503        while let Some(tag) = is.read_raw_tag_or_eof()? {
504            match tag {
505                10 => {
506                    self.out_points.push(is.read_message()?);
507                },
508                16 => {
509                    self.block_num = is.read_int32()?;
510                },
511                tag => {
512                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
513                },
514            };
515        }
516        ::std::result::Result::Ok(())
517    }
518
519    // Compute sizes of nested messages
520    #[allow(unused_variables)]
521    fn compute_size(&self) -> u64 {
522        let mut my_size = 0;
523        for value in &self.out_points {
524            let len = value.compute_size();
525            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
526        };
527        if self.block_num != 0 {
528            my_size += ::protobuf::rt::int32_size(2, self.block_num);
529        }
530        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
531        self.special_fields.cached_size().set(my_size as u32);
532        my_size
533    }
534
535    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
536        for v in &self.out_points {
537            ::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
538        };
539        if self.block_num != 0 {
540            os.write_int32(2, self.block_num)?;
541        }
542        os.write_unknown_fields(self.special_fields.unknown_fields())?;
543        ::std::result::Result::Ok(())
544    }
545
546    fn special_fields(&self) -> &::protobuf::SpecialFields {
547        &self.special_fields
548    }
549
550    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
551        &mut self.special_fields
552    }
553
554    fn new() -> OutputPointInfo {
555        OutputPointInfo::new()
556    }
557
558    fn clear(&mut self) {
559        self.out_points.clear();
560        self.block_num = 0;
561        self.special_fields.clear();
562    }
563
564    fn default_instance() -> &'static OutputPointInfo {
565        static instance: OutputPointInfo = OutputPointInfo {
566            out_points: ::std::vec::Vec::new(),
567            block_num: 0,
568            special_fields: ::protobuf::SpecialFields::new(),
569        };
570        &instance
571    }
572}
573
574impl ::protobuf::MessageFull for OutputPointInfo {
575    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
576        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
577        descriptor.get(|| file_descriptor().message_by_package_relative_name("OutputPointInfo").unwrap()).clone()
578    }
579}
580
581impl ::std::fmt::Display for OutputPointInfo {
582    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
583        ::protobuf::text_format::fmt(self, f)
584    }
585}
586
587impl ::protobuf::reflect::ProtobufValue for OutputPointInfo {
588    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
589}
590
591// @@protoc_insertion_point(message:protocol.PedersenHash)
592#[derive(PartialEq,Clone,Default,Debug)]
593pub struct PedersenHash {
594    // message fields
595    // @@protoc_insertion_point(field:protocol.PedersenHash.content)
596    pub content: ::std::vec::Vec<u8>,
597    // special fields
598    // @@protoc_insertion_point(special_field:protocol.PedersenHash.special_fields)
599    pub special_fields: ::protobuf::SpecialFields,
600}
601
602impl<'a> ::std::default::Default for &'a PedersenHash {
603    fn default() -> &'a PedersenHash {
604        <PedersenHash as ::protobuf::Message>::default_instance()
605    }
606}
607
608impl PedersenHash {
609    pub fn new() -> PedersenHash {
610        ::std::default::Default::default()
611    }
612
613    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
614        let mut fields = ::std::vec::Vec::with_capacity(1);
615        let mut oneofs = ::std::vec::Vec::with_capacity(0);
616        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
617            "content",
618            |m: &PedersenHash| { &m.content },
619            |m: &mut PedersenHash| { &mut m.content },
620        ));
621        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<PedersenHash>(
622            "PedersenHash",
623            fields,
624            oneofs,
625        )
626    }
627}
628
629impl ::protobuf::Message for PedersenHash {
630    const NAME: &'static str = "PedersenHash";
631
632    fn is_initialized(&self) -> bool {
633        true
634    }
635
636    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
637        while let Some(tag) = is.read_raw_tag_or_eof()? {
638            match tag {
639                10 => {
640                    self.content = is.read_bytes()?;
641                },
642                tag => {
643                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
644                },
645            };
646        }
647        ::std::result::Result::Ok(())
648    }
649
650    // Compute sizes of nested messages
651    #[allow(unused_variables)]
652    fn compute_size(&self) -> u64 {
653        let mut my_size = 0;
654        if !self.content.is_empty() {
655            my_size += ::protobuf::rt::bytes_size(1, &self.content);
656        }
657        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
658        self.special_fields.cached_size().set(my_size as u32);
659        my_size
660    }
661
662    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
663        if !self.content.is_empty() {
664            os.write_bytes(1, &self.content)?;
665        }
666        os.write_unknown_fields(self.special_fields.unknown_fields())?;
667        ::std::result::Result::Ok(())
668    }
669
670    fn special_fields(&self) -> &::protobuf::SpecialFields {
671        &self.special_fields
672    }
673
674    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
675        &mut self.special_fields
676    }
677
678    fn new() -> PedersenHash {
679        PedersenHash::new()
680    }
681
682    fn clear(&mut self) {
683        self.content.clear();
684        self.special_fields.clear();
685    }
686
687    fn default_instance() -> &'static PedersenHash {
688        static instance: PedersenHash = PedersenHash {
689            content: ::std::vec::Vec::new(),
690            special_fields: ::protobuf::SpecialFields::new(),
691        };
692        &instance
693    }
694}
695
696impl ::protobuf::MessageFull for PedersenHash {
697    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
698        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
699        descriptor.get(|| file_descriptor().message_by_package_relative_name("PedersenHash").unwrap()).clone()
700    }
701}
702
703impl ::std::fmt::Display for PedersenHash {
704    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
705        ::protobuf::text_format::fmt(self, f)
706    }
707}
708
709impl ::protobuf::reflect::ProtobufValue for PedersenHash {
710    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
711}
712
713// @@protoc_insertion_point(message:protocol.IncrementalMerkleTree)
714#[derive(PartialEq,Clone,Default,Debug)]
715pub struct IncrementalMerkleTree {
716    // message fields
717    // @@protoc_insertion_point(field:protocol.IncrementalMerkleTree.left)
718    pub left: ::protobuf::MessageField<PedersenHash>,
719    // @@protoc_insertion_point(field:protocol.IncrementalMerkleTree.right)
720    pub right: ::protobuf::MessageField<PedersenHash>,
721    // @@protoc_insertion_point(field:protocol.IncrementalMerkleTree.parents)
722    pub parents: ::std::vec::Vec<PedersenHash>,
723    // special fields
724    // @@protoc_insertion_point(special_field:protocol.IncrementalMerkleTree.special_fields)
725    pub special_fields: ::protobuf::SpecialFields,
726}
727
728impl<'a> ::std::default::Default for &'a IncrementalMerkleTree {
729    fn default() -> &'a IncrementalMerkleTree {
730        <IncrementalMerkleTree as ::protobuf::Message>::default_instance()
731    }
732}
733
734impl IncrementalMerkleTree {
735    pub fn new() -> IncrementalMerkleTree {
736        ::std::default::Default::default()
737    }
738
739    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
740        let mut fields = ::std::vec::Vec::with_capacity(3);
741        let mut oneofs = ::std::vec::Vec::with_capacity(0);
742        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, PedersenHash>(
743            "left",
744            |m: &IncrementalMerkleTree| { &m.left },
745            |m: &mut IncrementalMerkleTree| { &mut m.left },
746        ));
747        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, PedersenHash>(
748            "right",
749            |m: &IncrementalMerkleTree| { &m.right },
750            |m: &mut IncrementalMerkleTree| { &mut m.right },
751        ));
752        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
753            "parents",
754            |m: &IncrementalMerkleTree| { &m.parents },
755            |m: &mut IncrementalMerkleTree| { &mut m.parents },
756        ));
757        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<IncrementalMerkleTree>(
758            "IncrementalMerkleTree",
759            fields,
760            oneofs,
761        )
762    }
763}
764
765impl ::protobuf::Message for IncrementalMerkleTree {
766    const NAME: &'static str = "IncrementalMerkleTree";
767
768    fn is_initialized(&self) -> bool {
769        true
770    }
771
772    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
773        while let Some(tag) = is.read_raw_tag_or_eof()? {
774            match tag {
775                10 => {
776                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.left)?;
777                },
778                18 => {
779                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.right)?;
780                },
781                26 => {
782                    self.parents.push(is.read_message()?);
783                },
784                tag => {
785                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
786                },
787            };
788        }
789        ::std::result::Result::Ok(())
790    }
791
792    // Compute sizes of nested messages
793    #[allow(unused_variables)]
794    fn compute_size(&self) -> u64 {
795        let mut my_size = 0;
796        if let Some(v) = self.left.as_ref() {
797            let len = v.compute_size();
798            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
799        }
800        if let Some(v) = self.right.as_ref() {
801            let len = v.compute_size();
802            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
803        }
804        for value in &self.parents {
805            let len = value.compute_size();
806            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
807        };
808        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
809        self.special_fields.cached_size().set(my_size as u32);
810        my_size
811    }
812
813    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
814        if let Some(v) = self.left.as_ref() {
815            ::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
816        }
817        if let Some(v) = self.right.as_ref() {
818            ::protobuf::rt::write_message_field_with_cached_size(2, v, os)?;
819        }
820        for v in &self.parents {
821            ::protobuf::rt::write_message_field_with_cached_size(3, v, os)?;
822        };
823        os.write_unknown_fields(self.special_fields.unknown_fields())?;
824        ::std::result::Result::Ok(())
825    }
826
827    fn special_fields(&self) -> &::protobuf::SpecialFields {
828        &self.special_fields
829    }
830
831    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
832        &mut self.special_fields
833    }
834
835    fn new() -> IncrementalMerkleTree {
836        IncrementalMerkleTree::new()
837    }
838
839    fn clear(&mut self) {
840        self.left.clear();
841        self.right.clear();
842        self.parents.clear();
843        self.special_fields.clear();
844    }
845
846    fn default_instance() -> &'static IncrementalMerkleTree {
847        static instance: IncrementalMerkleTree = IncrementalMerkleTree {
848            left: ::protobuf::MessageField::none(),
849            right: ::protobuf::MessageField::none(),
850            parents: ::std::vec::Vec::new(),
851            special_fields: ::protobuf::SpecialFields::new(),
852        };
853        &instance
854    }
855}
856
857impl ::protobuf::MessageFull for IncrementalMerkleTree {
858    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
859        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
860        descriptor.get(|| file_descriptor().message_by_package_relative_name("IncrementalMerkleTree").unwrap()).clone()
861    }
862}
863
864impl ::std::fmt::Display for IncrementalMerkleTree {
865    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
866        ::protobuf::text_format::fmt(self, f)
867    }
868}
869
870impl ::protobuf::reflect::ProtobufValue for IncrementalMerkleTree {
871    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
872}
873
874// @@protoc_insertion_point(message:protocol.IncrementalMerkleVoucher)
875#[derive(PartialEq,Clone,Default,Debug)]
876pub struct IncrementalMerkleVoucher {
877    // message fields
878    // @@protoc_insertion_point(field:protocol.IncrementalMerkleVoucher.tree)
879    pub tree: ::protobuf::MessageField<IncrementalMerkleTree>,
880    // @@protoc_insertion_point(field:protocol.IncrementalMerkleVoucher.filled)
881    pub filled: ::std::vec::Vec<PedersenHash>,
882    // @@protoc_insertion_point(field:protocol.IncrementalMerkleVoucher.cursor)
883    pub cursor: ::protobuf::MessageField<IncrementalMerkleTree>,
884    // @@protoc_insertion_point(field:protocol.IncrementalMerkleVoucher.cursor_depth)
885    pub cursor_depth: i64,
886    // @@protoc_insertion_point(field:protocol.IncrementalMerkleVoucher.rt)
887    pub rt: ::std::vec::Vec<u8>,
888    // @@protoc_insertion_point(field:protocol.IncrementalMerkleVoucher.output_point)
889    pub output_point: ::protobuf::MessageField<OutputPoint>,
890    // special fields
891    // @@protoc_insertion_point(special_field:protocol.IncrementalMerkleVoucher.special_fields)
892    pub special_fields: ::protobuf::SpecialFields,
893}
894
895impl<'a> ::std::default::Default for &'a IncrementalMerkleVoucher {
896    fn default() -> &'a IncrementalMerkleVoucher {
897        <IncrementalMerkleVoucher as ::protobuf::Message>::default_instance()
898    }
899}
900
901impl IncrementalMerkleVoucher {
902    pub fn new() -> IncrementalMerkleVoucher {
903        ::std::default::Default::default()
904    }
905
906    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
907        let mut fields = ::std::vec::Vec::with_capacity(6);
908        let mut oneofs = ::std::vec::Vec::with_capacity(0);
909        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, IncrementalMerkleTree>(
910            "tree",
911            |m: &IncrementalMerkleVoucher| { &m.tree },
912            |m: &mut IncrementalMerkleVoucher| { &mut m.tree },
913        ));
914        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
915            "filled",
916            |m: &IncrementalMerkleVoucher| { &m.filled },
917            |m: &mut IncrementalMerkleVoucher| { &mut m.filled },
918        ));
919        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, IncrementalMerkleTree>(
920            "cursor",
921            |m: &IncrementalMerkleVoucher| { &m.cursor },
922            |m: &mut IncrementalMerkleVoucher| { &mut m.cursor },
923        ));
924        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
925            "cursor_depth",
926            |m: &IncrementalMerkleVoucher| { &m.cursor_depth },
927            |m: &mut IncrementalMerkleVoucher| { &mut m.cursor_depth },
928        ));
929        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
930            "rt",
931            |m: &IncrementalMerkleVoucher| { &m.rt },
932            |m: &mut IncrementalMerkleVoucher| { &mut m.rt },
933        ));
934        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, OutputPoint>(
935            "output_point",
936            |m: &IncrementalMerkleVoucher| { &m.output_point },
937            |m: &mut IncrementalMerkleVoucher| { &mut m.output_point },
938        ));
939        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<IncrementalMerkleVoucher>(
940            "IncrementalMerkleVoucher",
941            fields,
942            oneofs,
943        )
944    }
945}
946
947impl ::protobuf::Message for IncrementalMerkleVoucher {
948    const NAME: &'static str = "IncrementalMerkleVoucher";
949
950    fn is_initialized(&self) -> bool {
951        true
952    }
953
954    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
955        while let Some(tag) = is.read_raw_tag_or_eof()? {
956            match tag {
957                10 => {
958                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.tree)?;
959                },
960                18 => {
961                    self.filled.push(is.read_message()?);
962                },
963                26 => {
964                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.cursor)?;
965                },
966                32 => {
967                    self.cursor_depth = is.read_int64()?;
968                },
969                42 => {
970                    self.rt = is.read_bytes()?;
971                },
972                82 => {
973                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.output_point)?;
974                },
975                tag => {
976                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
977                },
978            };
979        }
980        ::std::result::Result::Ok(())
981    }
982
983    // Compute sizes of nested messages
984    #[allow(unused_variables)]
985    fn compute_size(&self) -> u64 {
986        let mut my_size = 0;
987        if let Some(v) = self.tree.as_ref() {
988            let len = v.compute_size();
989            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
990        }
991        for value in &self.filled {
992            let len = value.compute_size();
993            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
994        };
995        if let Some(v) = self.cursor.as_ref() {
996            let len = v.compute_size();
997            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
998        }
999        if self.cursor_depth != 0 {
1000            my_size += ::protobuf::rt::int64_size(4, self.cursor_depth);
1001        }
1002        if !self.rt.is_empty() {
1003            my_size += ::protobuf::rt::bytes_size(5, &self.rt);
1004        }
1005        if let Some(v) = self.output_point.as_ref() {
1006            let len = v.compute_size();
1007            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
1008        }
1009        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
1010        self.special_fields.cached_size().set(my_size as u32);
1011        my_size
1012    }
1013
1014    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
1015        if let Some(v) = self.tree.as_ref() {
1016            ::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
1017        }
1018        for v in &self.filled {
1019            ::protobuf::rt::write_message_field_with_cached_size(2, v, os)?;
1020        };
1021        if let Some(v) = self.cursor.as_ref() {
1022            ::protobuf::rt::write_message_field_with_cached_size(3, v, os)?;
1023        }
1024        if self.cursor_depth != 0 {
1025            os.write_int64(4, self.cursor_depth)?;
1026        }
1027        if !self.rt.is_empty() {
1028            os.write_bytes(5, &self.rt)?;
1029        }
1030        if let Some(v) = self.output_point.as_ref() {
1031            ::protobuf::rt::write_message_field_with_cached_size(10, v, os)?;
1032        }
1033        os.write_unknown_fields(self.special_fields.unknown_fields())?;
1034        ::std::result::Result::Ok(())
1035    }
1036
1037    fn special_fields(&self) -> &::protobuf::SpecialFields {
1038        &self.special_fields
1039    }
1040
1041    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
1042        &mut self.special_fields
1043    }
1044
1045    fn new() -> IncrementalMerkleVoucher {
1046        IncrementalMerkleVoucher::new()
1047    }
1048
1049    fn clear(&mut self) {
1050        self.tree.clear();
1051        self.filled.clear();
1052        self.cursor.clear();
1053        self.cursor_depth = 0;
1054        self.rt.clear();
1055        self.output_point.clear();
1056        self.special_fields.clear();
1057    }
1058
1059    fn default_instance() -> &'static IncrementalMerkleVoucher {
1060        static instance: IncrementalMerkleVoucher = IncrementalMerkleVoucher {
1061            tree: ::protobuf::MessageField::none(),
1062            filled: ::std::vec::Vec::new(),
1063            cursor: ::protobuf::MessageField::none(),
1064            cursor_depth: 0,
1065            rt: ::std::vec::Vec::new(),
1066            output_point: ::protobuf::MessageField::none(),
1067            special_fields: ::protobuf::SpecialFields::new(),
1068        };
1069        &instance
1070    }
1071}
1072
1073impl ::protobuf::MessageFull for IncrementalMerkleVoucher {
1074    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
1075        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
1076        descriptor.get(|| file_descriptor().message_by_package_relative_name("IncrementalMerkleVoucher").unwrap()).clone()
1077    }
1078}
1079
1080impl ::std::fmt::Display for IncrementalMerkleVoucher {
1081    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1082        ::protobuf::text_format::fmt(self, f)
1083    }
1084}
1085
1086impl ::protobuf::reflect::ProtobufValue for IncrementalMerkleVoucher {
1087    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
1088}
1089
1090// @@protoc_insertion_point(message:protocol.IncrementalMerkleVoucherInfo)
1091#[derive(PartialEq,Clone,Default,Debug)]
1092pub struct IncrementalMerkleVoucherInfo {
1093    // message fields
1094    // @@protoc_insertion_point(field:protocol.IncrementalMerkleVoucherInfo.vouchers)
1095    pub vouchers: ::std::vec::Vec<IncrementalMerkleVoucher>,
1096    // @@protoc_insertion_point(field:protocol.IncrementalMerkleVoucherInfo.paths)
1097    pub paths: ::std::vec::Vec<::std::vec::Vec<u8>>,
1098    // special fields
1099    // @@protoc_insertion_point(special_field:protocol.IncrementalMerkleVoucherInfo.special_fields)
1100    pub special_fields: ::protobuf::SpecialFields,
1101}
1102
1103impl<'a> ::std::default::Default for &'a IncrementalMerkleVoucherInfo {
1104    fn default() -> &'a IncrementalMerkleVoucherInfo {
1105        <IncrementalMerkleVoucherInfo as ::protobuf::Message>::default_instance()
1106    }
1107}
1108
1109impl IncrementalMerkleVoucherInfo {
1110    pub fn new() -> IncrementalMerkleVoucherInfo {
1111        ::std::default::Default::default()
1112    }
1113
1114    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
1115        let mut fields = ::std::vec::Vec::with_capacity(2);
1116        let mut oneofs = ::std::vec::Vec::with_capacity(0);
1117        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1118            "vouchers",
1119            |m: &IncrementalMerkleVoucherInfo| { &m.vouchers },
1120            |m: &mut IncrementalMerkleVoucherInfo| { &mut m.vouchers },
1121        ));
1122        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1123            "paths",
1124            |m: &IncrementalMerkleVoucherInfo| { &m.paths },
1125            |m: &mut IncrementalMerkleVoucherInfo| { &mut m.paths },
1126        ));
1127        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<IncrementalMerkleVoucherInfo>(
1128            "IncrementalMerkleVoucherInfo",
1129            fields,
1130            oneofs,
1131        )
1132    }
1133}
1134
1135impl ::protobuf::Message for IncrementalMerkleVoucherInfo {
1136    const NAME: &'static str = "IncrementalMerkleVoucherInfo";
1137
1138    fn is_initialized(&self) -> bool {
1139        true
1140    }
1141
1142    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
1143        while let Some(tag) = is.read_raw_tag_or_eof()? {
1144            match tag {
1145                10 => {
1146                    self.vouchers.push(is.read_message()?);
1147                },
1148                18 => {
1149                    self.paths.push(is.read_bytes()?);
1150                },
1151                tag => {
1152                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1153                },
1154            };
1155        }
1156        ::std::result::Result::Ok(())
1157    }
1158
1159    // Compute sizes of nested messages
1160    #[allow(unused_variables)]
1161    fn compute_size(&self) -> u64 {
1162        let mut my_size = 0;
1163        for value in &self.vouchers {
1164            let len = value.compute_size();
1165            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
1166        };
1167        for value in &self.paths {
1168            my_size += ::protobuf::rt::bytes_size(2, &value);
1169        };
1170        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
1171        self.special_fields.cached_size().set(my_size as u32);
1172        my_size
1173    }
1174
1175    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
1176        for v in &self.vouchers {
1177            ::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
1178        };
1179        for v in &self.paths {
1180            os.write_bytes(2, &v)?;
1181        };
1182        os.write_unknown_fields(self.special_fields.unknown_fields())?;
1183        ::std::result::Result::Ok(())
1184    }
1185
1186    fn special_fields(&self) -> &::protobuf::SpecialFields {
1187        &self.special_fields
1188    }
1189
1190    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
1191        &mut self.special_fields
1192    }
1193
1194    fn new() -> IncrementalMerkleVoucherInfo {
1195        IncrementalMerkleVoucherInfo::new()
1196    }
1197
1198    fn clear(&mut self) {
1199        self.vouchers.clear();
1200        self.paths.clear();
1201        self.special_fields.clear();
1202    }
1203
1204    fn default_instance() -> &'static IncrementalMerkleVoucherInfo {
1205        static instance: IncrementalMerkleVoucherInfo = IncrementalMerkleVoucherInfo {
1206            vouchers: ::std::vec::Vec::new(),
1207            paths: ::std::vec::Vec::new(),
1208            special_fields: ::protobuf::SpecialFields::new(),
1209        };
1210        &instance
1211    }
1212}
1213
1214impl ::protobuf::MessageFull for IncrementalMerkleVoucherInfo {
1215    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
1216        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
1217        descriptor.get(|| file_descriptor().message_by_package_relative_name("IncrementalMerkleVoucherInfo").unwrap()).clone()
1218    }
1219}
1220
1221impl ::std::fmt::Display for IncrementalMerkleVoucherInfo {
1222    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1223        ::protobuf::text_format::fmt(self, f)
1224    }
1225}
1226
1227impl ::protobuf::reflect::ProtobufValue for IncrementalMerkleVoucherInfo {
1228    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
1229}
1230
1231// @@protoc_insertion_point(message:protocol.SpendDescription)
1232#[derive(PartialEq,Clone,Default,Debug)]
1233pub struct SpendDescription {
1234    // message fields
1235    // @@protoc_insertion_point(field:protocol.SpendDescription.value_commitment)
1236    pub value_commitment: ::std::vec::Vec<u8>,
1237    // @@protoc_insertion_point(field:protocol.SpendDescription.anchor)
1238    pub anchor: ::std::vec::Vec<u8>,
1239    // @@protoc_insertion_point(field:protocol.SpendDescription.nullifier)
1240    pub nullifier: ::std::vec::Vec<u8>,
1241    // @@protoc_insertion_point(field:protocol.SpendDescription.rk)
1242    pub rk: ::std::vec::Vec<u8>,
1243    // @@protoc_insertion_point(field:protocol.SpendDescription.zkproof)
1244    pub zkproof: ::std::vec::Vec<u8>,
1245    // @@protoc_insertion_point(field:protocol.SpendDescription.spend_authority_signature)
1246    pub spend_authority_signature: ::std::vec::Vec<u8>,
1247    // special fields
1248    // @@protoc_insertion_point(special_field:protocol.SpendDescription.special_fields)
1249    pub special_fields: ::protobuf::SpecialFields,
1250}
1251
1252impl<'a> ::std::default::Default for &'a SpendDescription {
1253    fn default() -> &'a SpendDescription {
1254        <SpendDescription as ::protobuf::Message>::default_instance()
1255    }
1256}
1257
1258impl SpendDescription {
1259    pub fn new() -> SpendDescription {
1260        ::std::default::Default::default()
1261    }
1262
1263    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
1264        let mut fields = ::std::vec::Vec::with_capacity(6);
1265        let mut oneofs = ::std::vec::Vec::with_capacity(0);
1266        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1267            "value_commitment",
1268            |m: &SpendDescription| { &m.value_commitment },
1269            |m: &mut SpendDescription| { &mut m.value_commitment },
1270        ));
1271        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1272            "anchor",
1273            |m: &SpendDescription| { &m.anchor },
1274            |m: &mut SpendDescription| { &mut m.anchor },
1275        ));
1276        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1277            "nullifier",
1278            |m: &SpendDescription| { &m.nullifier },
1279            |m: &mut SpendDescription| { &mut m.nullifier },
1280        ));
1281        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1282            "rk",
1283            |m: &SpendDescription| { &m.rk },
1284            |m: &mut SpendDescription| { &mut m.rk },
1285        ));
1286        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1287            "zkproof",
1288            |m: &SpendDescription| { &m.zkproof },
1289            |m: &mut SpendDescription| { &mut m.zkproof },
1290        ));
1291        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1292            "spend_authority_signature",
1293            |m: &SpendDescription| { &m.spend_authority_signature },
1294            |m: &mut SpendDescription| { &mut m.spend_authority_signature },
1295        ));
1296        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<SpendDescription>(
1297            "SpendDescription",
1298            fields,
1299            oneofs,
1300        )
1301    }
1302}
1303
1304impl ::protobuf::Message for SpendDescription {
1305    const NAME: &'static str = "SpendDescription";
1306
1307    fn is_initialized(&self) -> bool {
1308        true
1309    }
1310
1311    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
1312        while let Some(tag) = is.read_raw_tag_or_eof()? {
1313            match tag {
1314                10 => {
1315                    self.value_commitment = is.read_bytes()?;
1316                },
1317                18 => {
1318                    self.anchor = is.read_bytes()?;
1319                },
1320                26 => {
1321                    self.nullifier = is.read_bytes()?;
1322                },
1323                34 => {
1324                    self.rk = is.read_bytes()?;
1325                },
1326                42 => {
1327                    self.zkproof = is.read_bytes()?;
1328                },
1329                50 => {
1330                    self.spend_authority_signature = is.read_bytes()?;
1331                },
1332                tag => {
1333                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1334                },
1335            };
1336        }
1337        ::std::result::Result::Ok(())
1338    }
1339
1340    // Compute sizes of nested messages
1341    #[allow(unused_variables)]
1342    fn compute_size(&self) -> u64 {
1343        let mut my_size = 0;
1344        if !self.value_commitment.is_empty() {
1345            my_size += ::protobuf::rt::bytes_size(1, &self.value_commitment);
1346        }
1347        if !self.anchor.is_empty() {
1348            my_size += ::protobuf::rt::bytes_size(2, &self.anchor);
1349        }
1350        if !self.nullifier.is_empty() {
1351            my_size += ::protobuf::rt::bytes_size(3, &self.nullifier);
1352        }
1353        if !self.rk.is_empty() {
1354            my_size += ::protobuf::rt::bytes_size(4, &self.rk);
1355        }
1356        if !self.zkproof.is_empty() {
1357            my_size += ::protobuf::rt::bytes_size(5, &self.zkproof);
1358        }
1359        if !self.spend_authority_signature.is_empty() {
1360            my_size += ::protobuf::rt::bytes_size(6, &self.spend_authority_signature);
1361        }
1362        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
1363        self.special_fields.cached_size().set(my_size as u32);
1364        my_size
1365    }
1366
1367    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
1368        if !self.value_commitment.is_empty() {
1369            os.write_bytes(1, &self.value_commitment)?;
1370        }
1371        if !self.anchor.is_empty() {
1372            os.write_bytes(2, &self.anchor)?;
1373        }
1374        if !self.nullifier.is_empty() {
1375            os.write_bytes(3, &self.nullifier)?;
1376        }
1377        if !self.rk.is_empty() {
1378            os.write_bytes(4, &self.rk)?;
1379        }
1380        if !self.zkproof.is_empty() {
1381            os.write_bytes(5, &self.zkproof)?;
1382        }
1383        if !self.spend_authority_signature.is_empty() {
1384            os.write_bytes(6, &self.spend_authority_signature)?;
1385        }
1386        os.write_unknown_fields(self.special_fields.unknown_fields())?;
1387        ::std::result::Result::Ok(())
1388    }
1389
1390    fn special_fields(&self) -> &::protobuf::SpecialFields {
1391        &self.special_fields
1392    }
1393
1394    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
1395        &mut self.special_fields
1396    }
1397
1398    fn new() -> SpendDescription {
1399        SpendDescription::new()
1400    }
1401
1402    fn clear(&mut self) {
1403        self.value_commitment.clear();
1404        self.anchor.clear();
1405        self.nullifier.clear();
1406        self.rk.clear();
1407        self.zkproof.clear();
1408        self.spend_authority_signature.clear();
1409        self.special_fields.clear();
1410    }
1411
1412    fn default_instance() -> &'static SpendDescription {
1413        static instance: SpendDescription = SpendDescription {
1414            value_commitment: ::std::vec::Vec::new(),
1415            anchor: ::std::vec::Vec::new(),
1416            nullifier: ::std::vec::Vec::new(),
1417            rk: ::std::vec::Vec::new(),
1418            zkproof: ::std::vec::Vec::new(),
1419            spend_authority_signature: ::std::vec::Vec::new(),
1420            special_fields: ::protobuf::SpecialFields::new(),
1421        };
1422        &instance
1423    }
1424}
1425
1426impl ::protobuf::MessageFull for SpendDescription {
1427    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
1428        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
1429        descriptor.get(|| file_descriptor().message_by_package_relative_name("SpendDescription").unwrap()).clone()
1430    }
1431}
1432
1433impl ::std::fmt::Display for SpendDescription {
1434    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1435        ::protobuf::text_format::fmt(self, f)
1436    }
1437}
1438
1439impl ::protobuf::reflect::ProtobufValue for SpendDescription {
1440    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
1441}
1442
1443// @@protoc_insertion_point(message:protocol.ReceiveDescription)
1444#[derive(PartialEq,Clone,Default,Debug)]
1445pub struct ReceiveDescription {
1446    // message fields
1447    // @@protoc_insertion_point(field:protocol.ReceiveDescription.value_commitment)
1448    pub value_commitment: ::std::vec::Vec<u8>,
1449    // @@protoc_insertion_point(field:protocol.ReceiveDescription.note_commitment)
1450    pub note_commitment: ::std::vec::Vec<u8>,
1451    // @@protoc_insertion_point(field:protocol.ReceiveDescription.epk)
1452    pub epk: ::std::vec::Vec<u8>,
1453    // @@protoc_insertion_point(field:protocol.ReceiveDescription.c_enc)
1454    pub c_enc: ::std::vec::Vec<u8>,
1455    // @@protoc_insertion_point(field:protocol.ReceiveDescription.c_out)
1456    pub c_out: ::std::vec::Vec<u8>,
1457    // @@protoc_insertion_point(field:protocol.ReceiveDescription.zkproof)
1458    pub zkproof: ::std::vec::Vec<u8>,
1459    // special fields
1460    // @@protoc_insertion_point(special_field:protocol.ReceiveDescription.special_fields)
1461    pub special_fields: ::protobuf::SpecialFields,
1462}
1463
1464impl<'a> ::std::default::Default for &'a ReceiveDescription {
1465    fn default() -> &'a ReceiveDescription {
1466        <ReceiveDescription as ::protobuf::Message>::default_instance()
1467    }
1468}
1469
1470impl ReceiveDescription {
1471    pub fn new() -> ReceiveDescription {
1472        ::std::default::Default::default()
1473    }
1474
1475    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
1476        let mut fields = ::std::vec::Vec::with_capacity(6);
1477        let mut oneofs = ::std::vec::Vec::with_capacity(0);
1478        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1479            "value_commitment",
1480            |m: &ReceiveDescription| { &m.value_commitment },
1481            |m: &mut ReceiveDescription| { &mut m.value_commitment },
1482        ));
1483        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1484            "note_commitment",
1485            |m: &ReceiveDescription| { &m.note_commitment },
1486            |m: &mut ReceiveDescription| { &mut m.note_commitment },
1487        ));
1488        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1489            "epk",
1490            |m: &ReceiveDescription| { &m.epk },
1491            |m: &mut ReceiveDescription| { &mut m.epk },
1492        ));
1493        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1494            "c_enc",
1495            |m: &ReceiveDescription| { &m.c_enc },
1496            |m: &mut ReceiveDescription| { &mut m.c_enc },
1497        ));
1498        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1499            "c_out",
1500            |m: &ReceiveDescription| { &m.c_out },
1501            |m: &mut ReceiveDescription| { &mut m.c_out },
1502        ));
1503        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1504            "zkproof",
1505            |m: &ReceiveDescription| { &m.zkproof },
1506            |m: &mut ReceiveDescription| { &mut m.zkproof },
1507        ));
1508        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ReceiveDescription>(
1509            "ReceiveDescription",
1510            fields,
1511            oneofs,
1512        )
1513    }
1514}
1515
1516impl ::protobuf::Message for ReceiveDescription {
1517    const NAME: &'static str = "ReceiveDescription";
1518
1519    fn is_initialized(&self) -> bool {
1520        true
1521    }
1522
1523    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
1524        while let Some(tag) = is.read_raw_tag_or_eof()? {
1525            match tag {
1526                10 => {
1527                    self.value_commitment = is.read_bytes()?;
1528                },
1529                18 => {
1530                    self.note_commitment = is.read_bytes()?;
1531                },
1532                26 => {
1533                    self.epk = is.read_bytes()?;
1534                },
1535                34 => {
1536                    self.c_enc = is.read_bytes()?;
1537                },
1538                42 => {
1539                    self.c_out = is.read_bytes()?;
1540                },
1541                50 => {
1542                    self.zkproof = is.read_bytes()?;
1543                },
1544                tag => {
1545                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1546                },
1547            };
1548        }
1549        ::std::result::Result::Ok(())
1550    }
1551
1552    // Compute sizes of nested messages
1553    #[allow(unused_variables)]
1554    fn compute_size(&self) -> u64 {
1555        let mut my_size = 0;
1556        if !self.value_commitment.is_empty() {
1557            my_size += ::protobuf::rt::bytes_size(1, &self.value_commitment);
1558        }
1559        if !self.note_commitment.is_empty() {
1560            my_size += ::protobuf::rt::bytes_size(2, &self.note_commitment);
1561        }
1562        if !self.epk.is_empty() {
1563            my_size += ::protobuf::rt::bytes_size(3, &self.epk);
1564        }
1565        if !self.c_enc.is_empty() {
1566            my_size += ::protobuf::rt::bytes_size(4, &self.c_enc);
1567        }
1568        if !self.c_out.is_empty() {
1569            my_size += ::protobuf::rt::bytes_size(5, &self.c_out);
1570        }
1571        if !self.zkproof.is_empty() {
1572            my_size += ::protobuf::rt::bytes_size(6, &self.zkproof);
1573        }
1574        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
1575        self.special_fields.cached_size().set(my_size as u32);
1576        my_size
1577    }
1578
1579    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
1580        if !self.value_commitment.is_empty() {
1581            os.write_bytes(1, &self.value_commitment)?;
1582        }
1583        if !self.note_commitment.is_empty() {
1584            os.write_bytes(2, &self.note_commitment)?;
1585        }
1586        if !self.epk.is_empty() {
1587            os.write_bytes(3, &self.epk)?;
1588        }
1589        if !self.c_enc.is_empty() {
1590            os.write_bytes(4, &self.c_enc)?;
1591        }
1592        if !self.c_out.is_empty() {
1593            os.write_bytes(5, &self.c_out)?;
1594        }
1595        if !self.zkproof.is_empty() {
1596            os.write_bytes(6, &self.zkproof)?;
1597        }
1598        os.write_unknown_fields(self.special_fields.unknown_fields())?;
1599        ::std::result::Result::Ok(())
1600    }
1601
1602    fn special_fields(&self) -> &::protobuf::SpecialFields {
1603        &self.special_fields
1604    }
1605
1606    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
1607        &mut self.special_fields
1608    }
1609
1610    fn new() -> ReceiveDescription {
1611        ReceiveDescription::new()
1612    }
1613
1614    fn clear(&mut self) {
1615        self.value_commitment.clear();
1616        self.note_commitment.clear();
1617        self.epk.clear();
1618        self.c_enc.clear();
1619        self.c_out.clear();
1620        self.zkproof.clear();
1621        self.special_fields.clear();
1622    }
1623
1624    fn default_instance() -> &'static ReceiveDescription {
1625        static instance: ReceiveDescription = ReceiveDescription {
1626            value_commitment: ::std::vec::Vec::new(),
1627            note_commitment: ::std::vec::Vec::new(),
1628            epk: ::std::vec::Vec::new(),
1629            c_enc: ::std::vec::Vec::new(),
1630            c_out: ::std::vec::Vec::new(),
1631            zkproof: ::std::vec::Vec::new(),
1632            special_fields: ::protobuf::SpecialFields::new(),
1633        };
1634        &instance
1635    }
1636}
1637
1638impl ::protobuf::MessageFull for ReceiveDescription {
1639    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
1640        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
1641        descriptor.get(|| file_descriptor().message_by_package_relative_name("ReceiveDescription").unwrap()).clone()
1642    }
1643}
1644
1645impl ::std::fmt::Display for ReceiveDescription {
1646    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1647        ::protobuf::text_format::fmt(self, f)
1648    }
1649}
1650
1651impl ::protobuf::reflect::ProtobufValue for ReceiveDescription {
1652    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
1653}
1654
1655// @@protoc_insertion_point(message:protocol.ShieldedTransferContract)
1656#[derive(PartialEq,Clone,Default,Debug)]
1657pub struct ShieldedTransferContract {
1658    // message fields
1659    // @@protoc_insertion_point(field:protocol.ShieldedTransferContract.transparent_from_address)
1660    pub transparent_from_address: ::std::vec::Vec<u8>,
1661    // @@protoc_insertion_point(field:protocol.ShieldedTransferContract.from_amount)
1662    pub from_amount: i64,
1663    // @@protoc_insertion_point(field:protocol.ShieldedTransferContract.spend_description)
1664    pub spend_description: ::std::vec::Vec<SpendDescription>,
1665    // @@protoc_insertion_point(field:protocol.ShieldedTransferContract.receive_description)
1666    pub receive_description: ::std::vec::Vec<ReceiveDescription>,
1667    // @@protoc_insertion_point(field:protocol.ShieldedTransferContract.binding_signature)
1668    pub binding_signature: ::std::vec::Vec<u8>,
1669    // @@protoc_insertion_point(field:protocol.ShieldedTransferContract.transparent_to_address)
1670    pub transparent_to_address: ::std::vec::Vec<u8>,
1671    // @@protoc_insertion_point(field:protocol.ShieldedTransferContract.to_amount)
1672    pub to_amount: i64,
1673    // special fields
1674    // @@protoc_insertion_point(special_field:protocol.ShieldedTransferContract.special_fields)
1675    pub special_fields: ::protobuf::SpecialFields,
1676}
1677
1678impl<'a> ::std::default::Default for &'a ShieldedTransferContract {
1679    fn default() -> &'a ShieldedTransferContract {
1680        <ShieldedTransferContract as ::protobuf::Message>::default_instance()
1681    }
1682}
1683
1684impl ShieldedTransferContract {
1685    pub fn new() -> ShieldedTransferContract {
1686        ::std::default::Default::default()
1687    }
1688
1689    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
1690        let mut fields = ::std::vec::Vec::with_capacity(7);
1691        let mut oneofs = ::std::vec::Vec::with_capacity(0);
1692        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1693            "transparent_from_address",
1694            |m: &ShieldedTransferContract| { &m.transparent_from_address },
1695            |m: &mut ShieldedTransferContract| { &mut m.transparent_from_address },
1696        ));
1697        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1698            "from_amount",
1699            |m: &ShieldedTransferContract| { &m.from_amount },
1700            |m: &mut ShieldedTransferContract| { &mut m.from_amount },
1701        ));
1702        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1703            "spend_description",
1704            |m: &ShieldedTransferContract| { &m.spend_description },
1705            |m: &mut ShieldedTransferContract| { &mut m.spend_description },
1706        ));
1707        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1708            "receive_description",
1709            |m: &ShieldedTransferContract| { &m.receive_description },
1710            |m: &mut ShieldedTransferContract| { &mut m.receive_description },
1711        ));
1712        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1713            "binding_signature",
1714            |m: &ShieldedTransferContract| { &m.binding_signature },
1715            |m: &mut ShieldedTransferContract| { &mut m.binding_signature },
1716        ));
1717        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1718            "transparent_to_address",
1719            |m: &ShieldedTransferContract| { &m.transparent_to_address },
1720            |m: &mut ShieldedTransferContract| { &mut m.transparent_to_address },
1721        ));
1722        fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
1723            "to_amount",
1724            |m: &ShieldedTransferContract| { &m.to_amount },
1725            |m: &mut ShieldedTransferContract| { &mut m.to_amount },
1726        ));
1727        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ShieldedTransferContract>(
1728            "ShieldedTransferContract",
1729            fields,
1730            oneofs,
1731        )
1732    }
1733}
1734
1735impl ::protobuf::Message for ShieldedTransferContract {
1736    const NAME: &'static str = "ShieldedTransferContract";
1737
1738    fn is_initialized(&self) -> bool {
1739        true
1740    }
1741
1742    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
1743        while let Some(tag) = is.read_raw_tag_or_eof()? {
1744            match tag {
1745                10 => {
1746                    self.transparent_from_address = is.read_bytes()?;
1747                },
1748                16 => {
1749                    self.from_amount = is.read_int64()?;
1750                },
1751                26 => {
1752                    self.spend_description.push(is.read_message()?);
1753                },
1754                34 => {
1755                    self.receive_description.push(is.read_message()?);
1756                },
1757                42 => {
1758                    self.binding_signature = is.read_bytes()?;
1759                },
1760                50 => {
1761                    self.transparent_to_address = is.read_bytes()?;
1762                },
1763                56 => {
1764                    self.to_amount = is.read_int64()?;
1765                },
1766                tag => {
1767                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1768                },
1769            };
1770        }
1771        ::std::result::Result::Ok(())
1772    }
1773
1774    // Compute sizes of nested messages
1775    #[allow(unused_variables)]
1776    fn compute_size(&self) -> u64 {
1777        let mut my_size = 0;
1778        if !self.transparent_from_address.is_empty() {
1779            my_size += ::protobuf::rt::bytes_size(1, &self.transparent_from_address);
1780        }
1781        if self.from_amount != 0 {
1782            my_size += ::protobuf::rt::int64_size(2, self.from_amount);
1783        }
1784        for value in &self.spend_description {
1785            let len = value.compute_size();
1786            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
1787        };
1788        for value in &self.receive_description {
1789            let len = value.compute_size();
1790            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
1791        };
1792        if !self.binding_signature.is_empty() {
1793            my_size += ::protobuf::rt::bytes_size(5, &self.binding_signature);
1794        }
1795        if !self.transparent_to_address.is_empty() {
1796            my_size += ::protobuf::rt::bytes_size(6, &self.transparent_to_address);
1797        }
1798        if self.to_amount != 0 {
1799            my_size += ::protobuf::rt::int64_size(7, self.to_amount);
1800        }
1801        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
1802        self.special_fields.cached_size().set(my_size as u32);
1803        my_size
1804    }
1805
1806    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
1807        if !self.transparent_from_address.is_empty() {
1808            os.write_bytes(1, &self.transparent_from_address)?;
1809        }
1810        if self.from_amount != 0 {
1811            os.write_int64(2, self.from_amount)?;
1812        }
1813        for v in &self.spend_description {
1814            ::protobuf::rt::write_message_field_with_cached_size(3, v, os)?;
1815        };
1816        for v in &self.receive_description {
1817            ::protobuf::rt::write_message_field_with_cached_size(4, v, os)?;
1818        };
1819        if !self.binding_signature.is_empty() {
1820            os.write_bytes(5, &self.binding_signature)?;
1821        }
1822        if !self.transparent_to_address.is_empty() {
1823            os.write_bytes(6, &self.transparent_to_address)?;
1824        }
1825        if self.to_amount != 0 {
1826            os.write_int64(7, self.to_amount)?;
1827        }
1828        os.write_unknown_fields(self.special_fields.unknown_fields())?;
1829        ::std::result::Result::Ok(())
1830    }
1831
1832    fn special_fields(&self) -> &::protobuf::SpecialFields {
1833        &self.special_fields
1834    }
1835
1836    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
1837        &mut self.special_fields
1838    }
1839
1840    fn new() -> ShieldedTransferContract {
1841        ShieldedTransferContract::new()
1842    }
1843
1844    fn clear(&mut self) {
1845        self.transparent_from_address.clear();
1846        self.from_amount = 0;
1847        self.spend_description.clear();
1848        self.receive_description.clear();
1849        self.binding_signature.clear();
1850        self.transparent_to_address.clear();
1851        self.to_amount = 0;
1852        self.special_fields.clear();
1853    }
1854
1855    fn default_instance() -> &'static ShieldedTransferContract {
1856        static instance: ShieldedTransferContract = ShieldedTransferContract {
1857            transparent_from_address: ::std::vec::Vec::new(),
1858            from_amount: 0,
1859            spend_description: ::std::vec::Vec::new(),
1860            receive_description: ::std::vec::Vec::new(),
1861            binding_signature: ::std::vec::Vec::new(),
1862            transparent_to_address: ::std::vec::Vec::new(),
1863            to_amount: 0,
1864            special_fields: ::protobuf::SpecialFields::new(),
1865        };
1866        &instance
1867    }
1868}
1869
1870impl ::protobuf::MessageFull for ShieldedTransferContract {
1871    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
1872        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
1873        descriptor.get(|| file_descriptor().message_by_package_relative_name("ShieldedTransferContract").unwrap()).clone()
1874    }
1875}
1876
1877impl ::std::fmt::Display for ShieldedTransferContract {
1878    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1879        ::protobuf::text_format::fmt(self, f)
1880    }
1881}
1882
1883impl ::protobuf::reflect::ProtobufValue for ShieldedTransferContract {
1884    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
1885}
1886
1887static file_descriptor_proto_data: &'static [u8] = b"\
1888    \n#core/contract/shield_contract.proto\x12\x08protocol\"*\n\x12Authentic\
1889    ationPath\x12\x14\n\x05value\x18\x01\x20\x03(\x08R\x05value\"\x83\x01\n\
1890    \nMerklePath\x12O\n\x14authentication_paths\x18\x01\x20\x03(\x0b2\x1c.pr\
1891    otocol.AuthenticationPathR\x13authenticationPaths\x12\x14\n\x05index\x18\
1892    \x02\x20\x03(\x08R\x05index\x12\x0e\n\x02rt\x18\x03\x20\x01(\x0cR\x02rt\
1893    \"7\n\x0bOutputPoint\x12\x12\n\x04hash\x18\x01\x20\x01(\x0cR\x04hash\x12\
1894    \x14\n\x05index\x18\x02\x20\x01(\x05R\x05index\"d\n\x0fOutputPointInfo\
1895    \x124\n\nout_points\x18\x01\x20\x03(\x0b2\x15.protocol.OutputPointR\tout\
1896    Points\x12\x1b\n\tblock_num\x18\x02\x20\x01(\x05R\x08blockNum\"(\n\x0cPe\
1897    dersenHash\x12\x18\n\x07content\x18\x01\x20\x01(\x0cR\x07content\"\xa3\
1898    \x01\n\x15IncrementalMerkleTree\x12*\n\x04left\x18\x01\x20\x01(\x0b2\x16\
1899    .protocol.PedersenHashR\x04left\x12,\n\x05right\x18\x02\x20\x01(\x0b2\
1900    \x16.protocol.PedersenHashR\x05right\x120\n\x07parents\x18\x03\x20\x03(\
1901    \x0b2\x16.protocol.PedersenHashR\x07parents\"\xa5\x02\n\x18IncrementalMe\
1902    rkleVoucher\x123\n\x04tree\x18\x01\x20\x01(\x0b2\x1f.protocol.Incrementa\
1903    lMerkleTreeR\x04tree\x12.\n\x06filled\x18\x02\x20\x03(\x0b2\x16.protocol\
1904    .PedersenHashR\x06filled\x127\n\x06cursor\x18\x03\x20\x01(\x0b2\x1f.prot\
1905    ocol.IncrementalMerkleTreeR\x06cursor\x12!\n\x0ccursor_depth\x18\x04\x20\
1906    \x01(\x03R\x0bcursorDepth\x12\x0e\n\x02rt\x18\x05\x20\x01(\x0cR\x02rt\
1907    \x128\n\x0coutput_point\x18\n\x20\x01(\x0b2\x15.protocol.OutputPointR\
1908    \x0boutputPoint\"t\n\x1cIncrementalMerkleVoucherInfo\x12>\n\x08vouchers\
1909    \x18\x01\x20\x03(\x0b2\".protocol.IncrementalMerkleVoucherR\x08vouchers\
1910    \x12\x14\n\x05paths\x18\x02\x20\x03(\x0cR\x05paths\"\xd9\x01\n\x10SpendD\
1911    escription\x12)\n\x10value_commitment\x18\x01\x20\x01(\x0cR\x0fvalueComm\
1912    itment\x12\x16\n\x06anchor\x18\x02\x20\x01(\x0cR\x06anchor\x12\x1c\n\tnu\
1913    llifier\x18\x03\x20\x01(\x0cR\tnullifier\x12\x0e\n\x02rk\x18\x04\x20\x01\
1914    (\x0cR\x02rk\x12\x18\n\x07zkproof\x18\x05\x20\x01(\x0cR\x07zkproof\x12:\
1915    \n\x19spend_authority_signature\x18\x06\x20\x01(\x0cR\x17spendAuthorityS\
1916    ignature\"\xbe\x01\n\x12ReceiveDescription\x12)\n\x10value_commitment\
1917    \x18\x01\x20\x01(\x0cR\x0fvalueCommitment\x12'\n\x0fnote_commitment\x18\
1918    \x02\x20\x01(\x0cR\x0enoteCommitment\x12\x10\n\x03epk\x18\x03\x20\x01(\
1919    \x0cR\x03epk\x12\x13\n\x05c_enc\x18\x04\x20\x01(\x0cR\x04cEnc\x12\x13\n\
1920    \x05c_out\x18\x05\x20\x01(\x0cR\x04cOut\x12\x18\n\x07zkproof\x18\x06\x20\
1921    \x01(\x0cR\x07zkproof\"\x8d\x03\n\x18ShieldedTransferContract\x128\n\x18\
1922    transparent_from_address\x18\x01\x20\x01(\x0cR\x16transparentFromAddress\
1923    \x12\x1f\n\x0bfrom_amount\x18\x02\x20\x01(\x03R\nfromAmount\x12G\n\x11sp\
1924    end_description\x18\x03\x20\x03(\x0b2\x1a.protocol.SpendDescriptionR\x10\
1925    spendDescription\x12M\n\x13receive_description\x18\x04\x20\x03(\x0b2\x1c\
1926    .protocol.ReceiveDescriptionR\x12receiveDescription\x12+\n\x11binding_si\
1927    gnature\x18\x05\x20\x01(\x0cR\x10bindingSignature\x124\n\x16transparent_\
1928    to_address\x18\x06\x20\x01(\x0cR\x14transparentToAddress\x12\x1b\n\tto_a\
1929    mount\x18\x07\x20\x01(\x03R\x08toAmountBE\n\x18org.tron.protos.contractZ\
1930    )github.com/tronprotocol/grpc-gateway/coreJ\xa5\x18\n\x06\x12\x04\0\0P\
1931    \x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\x08\n\x01\x02\x12\x03\x02\0\x11\n\
1932    \x08\n\x01\x08\x12\x03\x04\01\nH\n\x02\x08\x01\x12\x03\x04\01\"=Specify\
1933    \x20the\x20name\x20of\x20the\x20package\x20that\x20generated\x20the\x20J\
1934    ava\x20file\n\n\x08\n\x01\x08\x12\x03\x06\0@\ny\n\x02\x08\x0b\x12\x03\
1935    \x06\0@\x1anoption\x20java_outer_classname\x20=\x20\"ShieldedTransferCon\
1936    tract\";\x20//Specify\x20the\x20class\x20name\x20of\x20the\x20generated\
1937    \x20Java\x20file\n\n&\n\x02\x04\0\x12\x04\n\0\x0c\x012\x1a\x20for\x20shi\
1938    elded\x20transaction\n\n\n\n\x03\x04\0\x01\x12\x03\n\x08\x1a\n\x0b\n\x04\
1939    \x04\0\x02\0\x12\x03\x0b\x02\x1a\n\x0c\n\x05\x04\0\x02\0\x04\x12\x03\x0b\
1940    \x02\n\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03\x0b\x0b\x0f\n\x0c\n\x05\x04\0\
1941    \x02\0\x01\x12\x03\x0b\x10\x15\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x0b\
1942    \x18\x19\n\n\n\x02\x04\x01\x12\x04\x0e\0\x12\x01\n\n\n\x03\x04\x01\x01\
1943    \x12\x03\x0e\x08\x12\n\x0b\n\x04\x04\x01\x02\0\x12\x03\x0f\x027\n\x0c\n\
1944    \x05\x04\x01\x02\0\x04\x12\x03\x0f\x02\n\n\x0c\n\x05\x04\x01\x02\0\x06\
1945    \x12\x03\x0f\x0b\x1d\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03\x0f\x1e2\n\
1946    \x0c\n\x05\x04\x01\x02\0\x03\x12\x03\x0f56\n\x0b\n\x04\x04\x01\x02\x01\
1947    \x12\x03\x10\x02\x1a\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03\x10\x02\n\n\
1948    \x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\x10\x0b\x0f\n\x0c\n\x05\x04\x01\
1949    \x02\x01\x01\x12\x03\x10\x10\x15\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\
1950    \x10\x18\x19\n\x0b\n\x04\x04\x01\x02\x02\x12\x03\x11\x02\x0f\n\x0c\n\x05\
1951    \x04\x01\x02\x02\x05\x12\x03\x11\x02\x07\n\x0c\n\x05\x04\x01\x02\x02\x01\
1952    \x12\x03\x11\x08\n\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\x11\r\x0e\n\n\
1953    \n\x02\x04\x02\x12\x04\x14\0\x17\x01\n\n\n\x03\x04\x02\x01\x12\x03\x14\
1954    \x08\x13\n\x0b\n\x04\x04\x02\x02\0\x12\x03\x15\x02\x11\n\x0c\n\x05\x04\
1955    \x02\x02\0\x05\x12\x03\x15\x02\x07\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03\
1956    \x15\x08\x0c\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03\x15\x0f\x10\n\x0b\n\
1957    \x04\x04\x02\x02\x01\x12\x03\x16\x02\x12\n\x0c\n\x05\x04\x02\x02\x01\x05\
1958    \x12\x03\x16\x02\x07\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03\x16\x08\r\n\
1959    \x0c\n\x05\x04\x02\x02\x01\x03\x12\x03\x16\x10\x11\n\n\n\x02\x04\x03\x12\
1960    \x04\x19\0\x1c\x01\n\n\n\x03\x04\x03\x01\x12\x03\x19\x08\x17\n\x0b\n\x04\
1961    \x04\x03\x02\0\x12\x03\x1a\x02&\n\x0c\n\x05\x04\x03\x02\0\x04\x12\x03\
1962    \x1a\x02\n\n\x0c\n\x05\x04\x03\x02\0\x06\x12\x03\x1a\x0b\x16\n\x0c\n\x05\
1963    \x04\x03\x02\0\x01\x12\x03\x1a\x17!\n\x0c\n\x05\x04\x03\x02\0\x03\x12\
1964    \x03\x1a$%\n\x0b\n\x04\x04\x03\x02\x01\x12\x03\x1b\x02\x16\n\x0c\n\x05\
1965    \x04\x03\x02\x01\x05\x12\x03\x1b\x02\x07\n\x0c\n\x05\x04\x03\x02\x01\x01\
1966    \x12\x03\x1b\x08\x11\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03\x1b\x14\x15\
1967    \n\n\n\x02\x04\x04\x12\x04\x1e\0\x20\x01\n\n\n\x03\x04\x04\x01\x12\x03\
1968    \x1e\x08\x14\n\x0b\n\x04\x04\x04\x02\0\x12\x03\x1f\x02\x14\n\x0c\n\x05\
1969    \x04\x04\x02\0\x05\x12\x03\x1f\x02\x07\n\x0c\n\x05\x04\x04\x02\0\x01\x12\
1970    \x03\x1f\x08\x0f\n\x0c\n\x05\x04\x04\x02\0\x03\x12\x03\x1f\x12\x13\n\n\n\
1971    \x02\x04\x05\x12\x04\"\0&\x01\n\n\n\x03\x04\x05\x01\x12\x03\"\x08\x1d\n\
1972    \x0b\n\x04\x04\x05\x02\0\x12\x03#\x02\x18\n\x0c\n\x05\x04\x05\x02\0\x06\
1973    \x12\x03#\x02\x0e\n\x0c\n\x05\x04\x05\x02\0\x01\x12\x03#\x0f\x13\n\x0c\n\
1974    \x05\x04\x05\x02\0\x03\x12\x03#\x16\x17\n\x0b\n\x04\x04\x05\x02\x01\x12\
1975    \x03$\x02\x19\n\x0c\n\x05\x04\x05\x02\x01\x06\x12\x03$\x02\x0e\n\x0c\n\
1976    \x05\x04\x05\x02\x01\x01\x12\x03$\x0f\x14\n\x0c\n\x05\x04\x05\x02\x01\
1977    \x03\x12\x03$\x17\x18\n\x0b\n\x04\x04\x05\x02\x02\x12\x03%\x02$\n\x0c\n\
1978    \x05\x04\x05\x02\x02\x04\x12\x03%\x02\n\n\x0c\n\x05\x04\x05\x02\x02\x06\
1979    \x12\x03%\x0b\x17\n\x0c\n\x05\x04\x05\x02\x02\x01\x12\x03%\x18\x1f\n\x0c\
1980    \n\x05\x04\x05\x02\x02\x03\x12\x03%\"#\n\n\n\x02\x04\x06\x12\x04(\0/\x01\
1981    \n\n\n\x03\x04\x06\x01\x12\x03(\x08\x20\n\x0b\n\x04\x04\x06\x02\0\x12\
1982    \x03)\x02!\n\x0c\n\x05\x04\x06\x02\0\x06\x12\x03)\x02\x17\n\x0c\n\x05\
1983    \x04\x06\x02\0\x01\x12\x03)\x18\x1c\n\x0c\n\x05\x04\x06\x02\0\x03\x12\
1984    \x03)\x1f\x20\n\x0b\n\x04\x04\x06\x02\x01\x12\x03*\x02#\n\x0c\n\x05\x04\
1985    \x06\x02\x01\x04\x12\x03*\x02\n\n\x0c\n\x05\x04\x06\x02\x01\x06\x12\x03*\
1986    \x0b\x17\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03*\x18\x1e\n\x0c\n\x05\
1987    \x04\x06\x02\x01\x03\x12\x03*!\"\n\x0b\n\x04\x04\x06\x02\x02\x12\x03+\
1988    \x02#\n\x0c\n\x05\x04\x06\x02\x02\x06\x12\x03+\x02\x17\n\x0c\n\x05\x04\
1989    \x06\x02\x02\x01\x12\x03+\x18\x1e\n\x0c\n\x05\x04\x06\x02\x02\x03\x12\
1990    \x03+!\"\n\x0b\n\x04\x04\x06\x02\x03\x12\x03,\x02\x19\n\x0c\n\x05\x04\
1991    \x06\x02\x03\x05\x12\x03,\x02\x07\n\x0c\n\x05\x04\x06\x02\x03\x01\x12\
1992    \x03,\x08\x14\n\x0c\n\x05\x04\x06\x02\x03\x03\x12\x03,\x17\x18\n\x0b\n\
1993    \x04\x04\x06\x02\x04\x12\x03-\x02\x0f\n\x0c\n\x05\x04\x06\x02\x04\x05\
1994    \x12\x03-\x02\x07\n\x0c\n\x05\x04\x06\x02\x04\x01\x12\x03-\x08\n\n\x0c\n\
1995    \x05\x04\x06\x02\x04\x03\x12\x03-\r\x0e\n\x0b\n\x04\x04\x06\x02\x05\x12\
1996    \x03.\x02\x20\n\x0c\n\x05\x04\x06\x02\x05\x06\x12\x03.\x02\r\n\x0c\n\x05\
1997    \x04\x06\x02\x05\x01\x12\x03.\x0e\x1a\n\x0c\n\x05\x04\x06\x02\x05\x03\
1998    \x12\x03.\x1d\x1f\n\n\n\x02\x04\x07\x12\x041\04\x01\n\n\n\x03\x04\x07\
1999    \x01\x12\x031\x08$\n\x0b\n\x04\x04\x07\x02\0\x12\x032\x021\n\x0c\n\x05\
2000    \x04\x07\x02\0\x04\x12\x032\x02\n\n\x0c\n\x05\x04\x07\x02\0\x06\x12\x032\
2001    \x0b#\n\x0c\n\x05\x04\x07\x02\0\x01\x12\x032$,\n\x0c\n\x05\x04\x07\x02\0\
2002    \x03\x12\x032/0\n\x0b\n\x04\x04\x07\x02\x01\x12\x033\x02\x1b\n\x0c\n\x05\
2003    \x04\x07\x02\x01\x04\x12\x033\x02\n\n\x0c\n\x05\x04\x07\x02\x01\x05\x12\
2004    \x033\x0b\x10\n\x0c\n\x05\x04\x07\x02\x01\x01\x12\x033\x11\x16\n\x0c\n\
2005    \x05\x04\x07\x02\x01\x03\x12\x033\x19\x1a\n\n\n\x02\x04\x08\x12\x046\0=\
2006    \x01\n\n\n\x03\x04\x08\x01\x12\x036\x08\x18\n\x0b\n\x04\x04\x08\x02\0\
2007    \x12\x037\x02\x1d\n\x0c\n\x05\x04\x08\x02\0\x05\x12\x037\x02\x07\n\x0c\n\
2008    \x05\x04\x08\x02\0\x01\x12\x037\x08\x18\n\x0c\n\x05\x04\x08\x02\0\x03\
2009    \x12\x037\x1b\x1c\n\x1a\n\x04\x04\x08\x02\x01\x12\x038\x02\x13\"\r\x20me\
2010    rkle\x20root\n\n\x0c\n\x05\x04\x08\x02\x01\x05\x12\x038\x02\x07\n\x0c\n\
2011    \x05\x04\x08\x02\x01\x01\x12\x038\x08\x0e\n\x0c\n\x05\x04\x08\x02\x01\
2012    \x03\x12\x038\x11\x12\n*\n\x04\x04\x08\x02\x02\x12\x039\x02\x16\"\x1d\
2013    \x20used\x20for\x20check\x20double\x20spend\n\n\x0c\n\x05\x04\x08\x02\
2014    \x02\x05\x12\x039\x02\x07\n\x0c\n\x05\x04\x08\x02\x02\x01\x12\x039\x08\
2015    \x11\n\x0c\n\x05\x04\x08\x02\x02\x03\x12\x039\x14\x15\n7\n\x04\x04\x08\
2016    \x02\x03\x12\x03:\x02\x0f\"*\x20used\x20for\x20check\x20spend\x20authori\
2017    ty\x20signature\n\n\x0c\n\x05\x04\x08\x02\x03\x05\x12\x03:\x02\x07\n\x0c\
2018    \n\x05\x04\x08\x02\x03\x01\x12\x03:\x08\n\n\x0c\n\x05\x04\x08\x02\x03\
2019    \x03\x12\x03:\r\x0e\n\x0b\n\x04\x04\x08\x02\x04\x12\x03;\x02\x14\n\x0c\n\
2020    \x05\x04\x08\x02\x04\x05\x12\x03;\x02\x07\n\x0c\n\x05\x04\x08\x02\x04\
2021    \x01\x12\x03;\x08\x0f\n\x0c\n\x05\x04\x08\x02\x04\x03\x12\x03;\x12\x13\n\
2022    \x0b\n\x04\x04\x08\x02\x05\x12\x03<\x02&\n\x0c\n\x05\x04\x08\x02\x05\x05\
2023    \x12\x03<\x02\x07\n\x0c\n\x05\x04\x08\x02\x05\x01\x12\x03<\x08!\n\x0c\n\
2024    \x05\x04\x08\x02\x05\x03\x12\x03<$%\n\n\n\x02\x04\t\x12\x04?\0F\x01\n\n\
2025    \n\x03\x04\t\x01\x12\x03?\x08\x1a\n\x0b\n\x04\x04\t\x02\0\x12\x03@\x02\
2026    \x1d\n\x0c\n\x05\x04\t\x02\0\x05\x12\x03@\x02\x07\n\x0c\n\x05\x04\t\x02\
2027    \0\x01\x12\x03@\x08\x18\n\x0c\n\x05\x04\t\x02\0\x03\x12\x03@\x1b\x1c\n\
2028    \x0b\n\x04\x04\t\x02\x01\x12\x03A\x02\x1c\n\x0c\n\x05\x04\t\x02\x01\x05\
2029    \x12\x03A\x02\x07\n\x0c\n\x05\x04\t\x02\x01\x01\x12\x03A\x08\x17\n\x0c\n\
2030    \x05\x04\t\x02\x01\x03\x12\x03A\x1a\x1b\n\x1d\n\x04\x04\t\x02\x02\x12\
2031    \x03B\x02\x10\"\x10\x20for\x20Encryption\n\n\x0c\n\x05\x04\t\x02\x02\x05\
2032    \x12\x03B\x02\x07\n\x0c\n\x05\x04\t\x02\x02\x01\x12\x03B\x08\x0b\n\x0c\n\
2033    \x05\x04\t\x02\x02\x03\x12\x03B\x0e\x0f\n;\n\x04\x04\t\x02\x03\x12\x03C\
2034    \x02\x12\".\x20Encryption\x20for\x20incoming,\x20decrypt\x20it\x20with\
2035    \x20ivk\n\n\x0c\n\x05\x04\t\x02\x03\x05\x12\x03C\x02\x07\n\x0c\n\x05\x04\
2036    \t\x02\x03\x01\x12\x03C\x08\r\n\x0c\n\x05\x04\t\x02\x03\x03\x12\x03C\x10\
2037    \x11\n8\n\x04\x04\t\x02\x04\x12\x03D\x02\x12\"+\x20Encryption\x20for\x20\
2038    audit,\x20decrypt\x20it\x20with\x20ovk\n\n\x0c\n\x05\x04\t\x02\x04\x05\
2039    \x12\x03D\x02\x07\n\x0c\n\x05\x04\t\x02\x04\x01\x12\x03D\x08\r\n\x0c\n\
2040    \x05\x04\t\x02\x04\x03\x12\x03D\x10\x11\n\x0b\n\x04\x04\t\x02\x05\x12\
2041    \x03E\x02\x14\n\x0c\n\x05\x04\t\x02\x05\x05\x12\x03E\x02\x07\n\x0c\n\x05\
2042    \x04\t\x02\x05\x01\x12\x03E\x08\x0f\n\x0c\n\x05\x04\t\x02\x05\x03\x12\
2043    \x03E\x12\x13\n\n\n\x02\x04\n\x12\x04H\0P\x01\n\n\n\x03\x04\n\x01\x12\
2044    \x03H\x08\x20\n\"\n\x04\x04\n\x02\0\x12\x03I\x02%\"\x15\x20transparent\
2045    \x20address\n\n\x0c\n\x05\x04\n\x02\0\x05\x12\x03I\x02\x07\n\x0c\n\x05\
2046    \x04\n\x02\0\x01\x12\x03I\x08\x20\n\x0c\n\x05\x04\n\x02\0\x03\x12\x03I#$\
2047    \n\x0b\n\x04\x04\n\x02\x01\x12\x03J\x02\x18\n\x0c\n\x05\x04\n\x02\x01\
2048    \x05\x12\x03J\x02\x07\n\x0c\n\x05\x04\n\x02\x01\x01\x12\x03J\x08\x13\n\
2049    \x0c\n\x05\x04\n\x02\x01\x03\x12\x03J\x16\x17\n\x0b\n\x04\x04\n\x02\x02\
2050    \x12\x03K\x022\n\x0c\n\x05\x04\n\x02\x02\x04\x12\x03K\x02\n\n\x0c\n\x05\
2051    \x04\n\x02\x02\x06\x12\x03K\x0b\x1b\n\x0c\n\x05\x04\n\x02\x02\x01\x12\
2052    \x03K\x1c-\n\x0c\n\x05\x04\n\x02\x02\x03\x12\x03K01\n\x0b\n\x04\x04\n\
2053    \x02\x03\x12\x03L\x026\n\x0c\n\x05\x04\n\x02\x03\x04\x12\x03L\x02\n\n\
2054    \x0c\n\x05\x04\n\x02\x03\x06\x12\x03L\x0b\x1d\n\x0c\n\x05\x04\n\x02\x03\
2055    \x01\x12\x03L\x1e1\n\x0c\n\x05\x04\n\x02\x03\x03\x12\x03L45\n\x0b\n\x04\
2056    \x04\n\x02\x04\x12\x03M\x02\x1e\n\x0c\n\x05\x04\n\x02\x04\x05\x12\x03M\
2057    \x02\x07\n\x0c\n\x05\x04\n\x02\x04\x01\x12\x03M\x08\x19\n\x0c\n\x05\x04\
2058    \n\x02\x04\x03\x12\x03M\x1c\x1d\n\"\n\x04\x04\n\x02\x05\x12\x03N\x02#\"\
2059    \x15\x20transparent\x20address\n\n\x0c\n\x05\x04\n\x02\x05\x05\x12\x03N\
2060    \x02\x07\n\x0c\n\x05\x04\n\x02\x05\x01\x12\x03N\x08\x1e\n\x0c\n\x05\x04\
2061    \n\x02\x05\x03\x12\x03N!\"\n3\n\x04\x04\n\x02\x06\x12\x03O\x02\x16\"&\
2062    \x20the\x20amount\x20to\x20transparent\x20to_address\n\n\x0c\n\x05\x04\n\
2063    \x02\x06\x05\x12\x03O\x02\x07\n\x0c\n\x05\x04\n\x02\x06\x01\x12\x03O\x08\
2064    \x11\n\x0c\n\x05\x04\n\x02\x06\x03\x12\x03O\x14\x15b\x06proto3\
2065";
2066
2067/// `FileDescriptorProto` object which was a source for this generated file
2068fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
2069    static file_descriptor_proto_lazy: ::protobuf::rt::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::Lazy::new();
2070    file_descriptor_proto_lazy.get(|| {
2071        ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
2072    })
2073}
2074
2075/// `FileDescriptor` object which allows dynamic access to files
2076pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
2077    static generated_file_descriptor_lazy: ::protobuf::rt::Lazy<::protobuf::reflect::GeneratedFileDescriptor> = ::protobuf::rt::Lazy::new();
2078    static file_descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::FileDescriptor> = ::protobuf::rt::Lazy::new();
2079    file_descriptor.get(|| {
2080        let generated_file_descriptor = generated_file_descriptor_lazy.get(|| {
2081            let mut deps = ::std::vec::Vec::with_capacity(0);
2082            let mut messages = ::std::vec::Vec::with_capacity(11);
2083            messages.push(AuthenticationPath::generated_message_descriptor_data());
2084            messages.push(MerklePath::generated_message_descriptor_data());
2085            messages.push(OutputPoint::generated_message_descriptor_data());
2086            messages.push(OutputPointInfo::generated_message_descriptor_data());
2087            messages.push(PedersenHash::generated_message_descriptor_data());
2088            messages.push(IncrementalMerkleTree::generated_message_descriptor_data());
2089            messages.push(IncrementalMerkleVoucher::generated_message_descriptor_data());
2090            messages.push(IncrementalMerkleVoucherInfo::generated_message_descriptor_data());
2091            messages.push(SpendDescription::generated_message_descriptor_data());
2092            messages.push(ReceiveDescription::generated_message_descriptor_data());
2093            messages.push(ShieldedTransferContract::generated_message_descriptor_data());
2094            let mut enums = ::std::vec::Vec::with_capacity(0);
2095            ::protobuf::reflect::GeneratedFileDescriptor::new_generated(
2096                file_descriptor_proto(),
2097                deps,
2098                messages,
2099                enums,
2100            )
2101        });
2102        ::protobuf::reflect::FileDescriptor::new_generated_2(generated_file_descriptor)
2103    })
2104}